[英]Detect click on HTML button through javascript in Android WebView
[英]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.