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