1

WebView内にHTMLページをロードしました(ページの最後にテキストとテキストを共有するためのボタンがあるとします)。

問題は、その共有ボタンのタッチ イベントをシミュレートして、それを webview にディスパッチすることです。つまり、(ユーザーがテキストを読むのに時間を費やしたら、自動化された方法で共有ボタンのクリックをシミュレートしたいと思います (onClick メソッドを呼び出す必要があります)。これにより、ユーザーが共有をクリックしなくても、それが必須になりました。共有。

それが論理です。Stack Overflow でタッチ イベントに関するいくつかの質問を参照したところ、dispatchTouchEvent と MotionEvent を使用する必要があることがわかりましたが、それらの使用方法とロジックの適用方法が明確ではありませんでした。

上記の引用されたアイデアに関して、誰かがその使用法を詳細に説明できれば、本当に役に立ちます。

4

1 に答える 1

1

これは、クリックする場所の x、y 座標がわかっている場合に可能です。
このJavaの例(私のものではありません)では、DOM要素の長方形が与えられた場合、クリックをシミュレートすることが示されています。
ここでの利点は、ユーザーがアクションを開始しなかった場合でもクリックをシミュレートできることです(これはブラウザによって制限されています)
https://github.com/46cl/cordova-android-focus-plugin/blob/master/src/android/Focus.java これは cordova の例です。通常の Android プログラムから呼び出す方法の例については、こちらを参照してください:
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 を Java コードに渡して、JavaScript から呼び出しをディスパッチする必要があります。これは、
JavaScript から Java メソッドを呼び出す (Cordova アプリの) 例です:
https://github.com/46cl/cordova-android-focus -プラグイン/ブロブ/マスター/www/focus.js

于 2015-02-16T23:53:17.603 に答える