簡體   English   中英

從Android中的WebView獲取點擊事件

[英]Getting click event from the webview in android

我正在使用webView,我想在我的應用程序中獲取Webview上按鈕的click事件,並希望從我的側面執行操作。 但是我無法獲得點擊事件。 我已經嘗試通過從Webview啟用javascript從Google搜索到許多方法,但是沒有任何方法起作用。 請提前幫助。

我正在使用此代碼,其中有效是HTML文件中按鈕的名稱。

webView.addJavascriptInterface(new Object() {

        @JavascriptInterface
        public void performClick() {

            GeneralFunctions.showToast(HomeActivity.this, "clicked");
        }
    }, "valid");

在這里,我描述的是webview(JavaScript)點擊事件的代碼塊,您可以像這樣修改代碼

WebSettings ws = webView.getSettings();
ws.setJavaScriptEnabled(true);
webView.addJavascriptInterface(new Object()
{
   @JavascriptInterface           // For API 17+
   public void performClick(String strl)
   {
      stringVariable = strl;
      Toast.makeText (YourActivity.this, stringVariable, Toast.LENGTH_SHORT).show();
   }
}, "valid");

和HTML

<button type="button" value="someValue" onclick="valid.performClick(this.value);">Valid</button>

所以最后我得到了答案。 啟用Javascript之后。 我必須啟用

webView.getSettings().setDomStorageEnabled(true);

以便performClick可以正常工作。正確的代碼是:

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setDomStorageEnabled(true); // This line will be added
    webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    webView.loadUrl("https://www.example.com/");
    webView.setWebViewClient(new WebViewClient());

    webView.addJavascriptInterface(new Object(){
        @JavascriptInterface
        public void performClick(String val){

            GeneralFunctions.showToast(HomeActivity.this,val+"clicked");
        }
    },"ok");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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