我目前正在使用webview,其中在webview中单击某个按钮时会创建Javascript弹出窗口。但它并没有在我的Webview中打开。
我的代码在这里:
wvPayements = (WebView) view.findViewById(R.id.wvPaymentsPage);
wvPayements.getSettings().setLoadWithOverviewMode(true);
wvPayements.getSettings().setUseWideViewPort(true);
wvPayements.getSettings().setSupportZoom(true);
wvPayements.getSettings().setAllowFileAccess(true);
wvPayements.getSettings().setJavaScriptEnabled(true);
wvPayements.getSettings()
.setJavaScriptCanOpenWindowsAutomatically(true);
wvPayements.getSettings().setBuiltInZoomControls(true);
wvPayements.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, final String url) {
dialog.cancel();
}
});
wvPayements
.loadUrl("http://192.168.0.114/Parch_ws/testalert.html");
答案 0 :(得分:5)
这是你的解决方案
您必须提供可以处理警报的Chrome客户端:
应该使用WebChromeClient来获取这些警报,并且可以使用onJsAlert()
方法覆盖功能。希望这有帮助!
WebView wv=new WebView(this);
wv.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
//Required functionality here
return super.onJsAlert(view, url, message, result);
}
});
检查此链接和上次评论,您必须使用WebChromeClient。
答案 1 :(得分:0)
如果您在不受支持的浏览器上执行ES6,也会发生这种情况。
您始终可以检查支持的版本here