无法在Cordova项目中的WebView中执行Js代码

时间:2015-03-24 08:27:25

标签: javascript android cordova webview android-webview

我有两个活动,一个主要活动(A)是CordovaActivity,然后我用意图启动另一个活动(B),在B我有一个WebView(不是CordovaActivity),并且在我使用这个webview加载之后简单的网页(提醒一些东西),我发现js代码根本没有被执行,即使我通过调用setttings.setJsenabel(true)来启用javascript;

我从A 开始活动B. enter image description here

从活动B中的webview加载网址

enter image description here

简单网页

enter image description here

在设备中,它不会提醒任何内容

enter image description here

但是,如果我将webview更改为CordovaWebView而不是原始Android原生的,它可以工作.....

enter image description here

enter image description here

1 个答案:

答案 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;
    }
});