【问题标题】:Unable to execute Js code in WebView in Cordova ProjectCordova项目的WebView中无法执行Js代码
【发布时间】:2015-03-24 08:27:24
【问题描述】:
我有两个活动,一个主要活动(A)是一个 CordovaActivity,然后我使用意图启动另一个活动(B),在 B 中我有一个 WebView(不是 CordovaActivity),然后我使用这个 webview 加载一个简单的网页(提醒一些东西),我发现js代码根本没有执行,即使我通过调用 setttings.setJsenabel(true) 启用了javascript;
我从 A 开始活动 B
在 Activity B 中从 webview 加载 Url
简单的网页
在设备中,它不会提醒任何东西
但是,如果我将 webview 更改为 CordovaWebView 而不是原来的 Android 原生的,它可以工作.....
【问题讨论】:
标签:
javascript
android
cordova
webview
android-webview
【解决方案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;
}
});