我有两个 Activity ,一个主要 Activity (A)是 CordovaActivity,然后我使用 Intent 启动另一个 Activity (B),在 B 中我有一个 WebView(不是 CordovaActivity),在我使用此 WebView 加载一个简单的网页(提醒一些事情),我发现js代码根本没有执行,即使我通过调用setttings.setJsenabel(true);启用了javascript;
我从 A 开始 Activity B
从 Activity B 中的 webview 加载 URL
简单网页
在设备中,它不会发出任何警报
但是,如果我将 webview 更改为 CordovaWebView 而不是原来的 Android 原生 View ,它就可以工作了......
最佳答案
这是因为普通 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;
}
});
关于javascript - Cordova项目中WebView中无法执行Js代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29227906/