【发布时间】:2015-10-26 00:10:19
【问题描述】:
我正在尝试确定 html 页面中的文本字段何时从 Android WebView 获得焦点。一些注意事项:我不拥有该网页,因此我无法直接向网页添加任何内容。
我尝试过的:
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webView.addJavascriptInterface(new Object() {
@JavascriptInterface
public void displayScanButton() {
WebViewActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("SCAN", "DISPLAY SCAN BUTTON");
toolbar.setVisibility(View.VISIBLE);
}
});
}
@JavascriptInterface
public void hideScanButton() {
WebViewActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("SCAN", "HIDE SCAN BUTTON");
toolbar.setVisibility(View.GONE);
}
});
}
}, "Android");
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:document.getElementById('tNewLabels').onfocus = Android.displayScanButton; document.getElementById('tNewLabels').onfocusout = Android.hideScanButton;");
}
我也有几个变体,但这是我目前拥有的。 它不会为输入字段设置 onfocus。
基本上我想要的是当用户单击输入字段以输入文本时,我只显示我为这个特定元素附加到键盘的工具栏。当用户不再关注输入字段时,隐藏工具栏。我认为会有一种方法,因为 WebView 知道何时打开键盘以及何时关闭它。可能有办法拦截这个?
感谢您的帮助。
【问题讨论】:
标签: javascript java android html webview