私はAndroidでキーボードを開発しています。キーボードにはWebViewが含まれています。ユーザーがWebViewでWebページの入力領域をクリックすると、キーボードパネルが表示されます。 WebViewのすべてのコールバックを確認した後、コールバックが呼び出されたことが見つかりません。ユーザーが入力領域をクリックして何かをしたことをどのように知ることができますか?AndroidでWebViewの入力領域のクリックコールバックを取得する方法
答えて
それをチェックしてください:
public class WebViewClicker extends Activity implements OnTouchListener, Handler.Callback {
private static final int CLICK_ON_WEBVIEW = 1;
private static final int CLICK_ON_URL = 2;
private final Handler handler = new Handler(this);
private WebView webView;
private WebViewClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.web_view_clicker);
webView = (WebView)findViewById(R.id.web);
webView.setOnTouchListener(this);
client = new WebViewClient(){
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) {
handler.sendEmptyMessage(CLICK_ON_URL);
return false;
}
};
webView.setWebViewClient(client);
webView.setVerticalScrollBarEnabled(false);
webView.loadUrl("http://www.example.com");
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (v.getId() == R.id.web && event.getAction() == MotionEvent.ACTION_DOWN){
handler.sendEmptyMessageDelayed(CLICK_ON_WEBVIEW, 500);
}
return false;
}
@Override
public boolean handleMessage(Message msg) {
if (msg.what == CLICK_ON_URL){
handler.removeMessages(CLICK_ON_WEBVIEW);
return true;
}
if (msg.what == CLICK_ON_WEBVIEW){
Toast.makeText(this, "WebView clicked", Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
}
私が見つけたのは何のWebViewがOnTouchListenerにタッチイベントを送信することです。それは独自のonTouchEventメソッドを持っていますが、私はそのメソッドを使ってMotionEvent.ACTION_MOVEを取得したように見えました。
登録されたタッチイベントリスナーでイベントを取得できれば、ユーザーがURLをクリックしたときにタッチで実行したい操作を回避する方法が残っています。
これは、ユーザーがURLをクリックしたことでタッチが発生した場合、タッチの遅延メッセージを送信し、その後にそれらのタッチメッセージを削除することによって、手の込んだハンドラフットワークで実現できます。
これは、ユーザーがURLをクリックした場合のみ表示されます。必要なのは、ユーザーが入力領域をクリックしたときに呼び出されるコールバックです。 –
これをチェックしてくださいhttp://stackoverflow.com/questions/2236362/android-click-within-webview-causes-callback-to-android-application –
- 1. Android上で画面の作業領域の高さを取得する方法
- 2. 特定の領域でピクセルの色を取得する方法
- 3. Window Azureで領域のリストをプログラムで取得する方法
- 4. getmethodメソッドで領域データベースの結果を取得する方法
- 5. キャンバスの特定の領域を取得する方法
- 6. Asp.net MVCのテキスト領域の内容を取得する方法
- 7. JavaScriptのテキスト領域の値を取得する方法
- 8. テキスト入力にドロップ領域を追加する方法は?
- 9. wikiからポリゴンの領域を取得する方法mapia api
- 10. Mat Imageのピクセル領域を取得する方法
- 11. Javascript/Nodejsラムダ関数でAWS領域を取得する方法:
- 12. Googleマップの表示領域のマーカー数を取得するandroid
- 13. 取得AWS領域のリスト
- 14. 図の領域を取得する
- 15. pictureBox数字を使って領域を取得する方法
- 16. UIImageから透過領域を取得する方法は?
- 17. 回転イメージ領域を取得する方法は?
- 18. キーボードが入力テキスト領域を隠す
- 19. Android - ビューの表示領域を取得しますか?
- 20. calabash-androidでWebViewの詳細情報を取得する方法
- 21. 入力領域のある円の円周を見つける方法
- 22. テキスト領域の角領域の空白を取り除く方法
- 23. 画面上の選択領域にテキストを入力する方法は?
- 24. hapi.js ejsレイアウトで複数のコンテンツ領域を取得する方法は?
- 25. スクロールビューアでズームした領域の高さと幅を取得する方法は?
- 26. iPhoneで表示可能な地図の領域を取得する方法
- 27. libgdxで回転したActorの領域を取得する方法
- 28. akkaで別のクラスタノードからシャード領域を取得する方法は?
- 29. Androidの画像の領域を制御する方法
- 30. MSバンド領域設定の取得方法
ウェブビューでjavascriptとjavascriptインターフェイスのバインドを使用する – njzk2
@ njzk2ウェブページはgoogle.comと同じように管理されていません。私たちはページにjavascriptを追加することはできません。もちろん –
できます。ページが読み込まれた後、jsを実行することができます。 – njzk2