簡體   English   中英

如何確定HTML元素何時在Android WebView中獲得焦點?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM