[英]How to determine when an HTML element gains focus in Android WebView?
我試圖確定何時從Android WebView聚焦html頁面中的文本字段。 一些注意事項:我沒有網頁,所以我無法直接在網頁上添加任何內容。
我嘗試過的:
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知道何時打開鍵盤以及何時關閉它。 可能是攔截這個的方法嗎?
謝謝你的幫助。
嘗試這個:
document.getElementById('tNewLabels').onfocus = function() { Android.displayScanButton(); };
document.getElementById('tNewLabels').onfocusout = function() { Android.hideScanButton(); };
要使Android-Java橋能夠工作,您的函數必須將接口對象作為“this”變量。 將函數直接分配給事件會將其從對接口對象的附件中剝離。 我聽說它曾經在舊版本的WebView中工作,但它不再適用。
抱歉恢復舊問題,你可能已經弄明白了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.