我有两个活动,一个主要活动(A)是CordovaActivity,然后我用意图启动另一个活动(B),在B我有一个WebView(不是CordovaActivity),并且在我使用这个webview加载之后简单的网页(提醒一些东西),我发现js代码根本没有被执行,即使我通过调用setttings.setJsenabel(true)来启用javascript;
我从A 开始活动B.
从活动B中的webview加载网址
简单网页
在设备中,它不会提醒任何内容
但是,如果我将webview更改为CordovaWebView而不是原始Android原生的,它可以工作.....
答案 0 :(得分:1)
这是因为普通的WebView不支持自己显示警报。您需要为其提供实现WebChromeClient.onJsAlert
方法的WebChromeClient。例如:
mywebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(
WebView view, String url, String message, final JsResult result) {
new AlertDialog.Builder(view.getContext())
.setTitle("Alert")
.setMessage(message)
.setPositiveButton("Ok",
new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
}).setCancelable(false).create().show();
return true;
}
});