簡體   English   中英

在Android WebView中檢測HTML按鈕單擊

[英]Detect html button click in android webview

因此,在我的Android應用中,我打開了一個由表單和按鈕(提交)組成的Web視圖。 button元素如下所示:

 <button role="button" class="btn ng-binding" ng-click="actions.collect()" tooltip="default" title="Check form">SAVE</button> 

一切正常,除非我失去互聯網連接。 然后,我無法檢測到按鈕單擊。 在這種情況下,我想顯示一條錯誤消息,說如果單擊按鈕,則用戶處於脫機狀態。 如何在我的活動中做到這一點? 我對此很陌生,因此,如果可能的話,請給我更詳細的答案。

謝謝!

您必須像這樣使用javascript界面​​:

{
...

myWebview.getSettings().setJavaScriptEnabled(true);
myWebview.getSettings().setDomStorageEnabled(true);
myWebview.addJavascriptInterface(new MyJavaScriptInterface(this), "ButtonCheck");

myWebview.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        loadMyEvent(clickListener());
    }

    private void loadMyEvent(String javascript){
        myWebview.loadUrl("javascript:"+javascript);
    }

    private String clickListener(){
        return getMyButtons()+ "for(var i = 0; i < buttons.length; i++){\n" +
                "\tbuttons[i].onclick = function(){ console.log('click worked.'); ButtonCheck.boundMethod('button clicked'); };\n" +
                "}";
    }

    private String getMyButtons(){
        return "var buttons = document.getElementsByClassName('your-button-class'); console.log(buttons.length + ' buttons');\n";
    }
});

myWebview.loadUrl("http://....");

...
}


class MyJavaScriptInterface {

    private Context context;

    MyJavaScriptInterface(Context ctx) {
        context = ctx;
    }

    @JavascriptInterface
    public void boundMethod(String html) {
        //Check internet connection
    }

}

暫無
暫無

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

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