2014-12-20 6 views
1

WebView에서 HTML 페이지를로드했습니다 (예 : 텍스트와 페이지 끝에 텍스트가있는 버튼이 있음).터치 이벤트를 시뮬레이트하고 전달합니다.

내가 공유 버튼의 터치 이벤트를 시뮬레이트하고 webview로 보내고 싶습니다. 즉 (일단 사용자가 공유 버튼을 클릭 (onClick 메서드를 호출해야합니다) 자동화 된 방식으로 시뮬레이션 할 수 있도록 텍스트를 읽는 데 약간의 시간을 보낸다 그래서 사용자가 공유를 클릭하지 않아도 나는 그것을 필수로 만들었습니다. 공유했다.. 나는 몇 가지 질문에 논리 주심을 것

은 스택 오버플로에 터치 이벤트를 등록하고 dispatchTouchEvent 및 MotionEvent이 그들을 사용하고 내 논리를 적용하는 방법을 사용하지만 명확하지되어야한다는 것을 발견했다.

정말 것 위의 인용 아이디어와 관련하여 누군가의 사용법을 자세하게 설명 할 수 있다면 도움이됩니다.

답변

0

클릭 할 곳이 x, y 좌표를 알고있는 경우 가능합니다. 이 자바 예제에서는 DOM 요소의 사각형이 주어지면 클릭을 시뮬레이션합니다.
여기서 이점은 사용자가 작업을 시작하지 않아도 클릭을 시뮬레이션 할 수 있다는 것입니다. 브라우저 자체에 의해 제한됨)
https://github.com/46cl/cordova-android-focus-plugin/blob/master/src/android/Focus.java 이것은 코드바 예제입니다.
Android Webview: Execution of javascript from java method called from javascript

runOnUiThread(new Runnable() { public void run() { final long uMillis = SystemClock.uptimeMillis(); webView.dispatchTouchEvent(MotionEvent.obtain(uMillis, uMillis, MotionEvent.ACTION_DOWN, centerLeft, centerTop, 0)); webView.dispatchTouchEvent(MotionEvent.obtain(uMillis, uMillis, MotionEvent.ACTION_UP, centerLeft, centerTop, 0)); } });

당신이 당신의 자바 코드에 RECT를 통과하여 자바 스크립트에서 호출을 파견해야합니다 :
일반 안드로이드 프로그램에서 호출하는 방법에 대한 예를 들어 여기를 참조하십시오 다음은 javascript에서 자바 메소드를 호출하는 (코드 바 앱의) 예제입니다.
https://github.com/46cl/cordova-android-focus-plugin/blob/master/www/focus.js

+0

어떻게하면 스크롤링이나 플링 (빠른 스크롤링)을 시뮬레이트 할 수 있습니까? –