javascript - Cordova项目中WebView中无法执行Js代码

标签 javascript android cordova webview android-webview

我有两个 Activity ,一个主要 Activity (A)是 CordovaActivity,然后我使用 Intent 启动另一个 Activity (B),在 B 中我有一个 WebView(不是 CordovaActivity),在我使用此 WebView 加载一个简单的网页(提醒一些事情),我发现js代码根本没有执行,即使我通过调用setttings.setJsenabel(true);启用了javascript;

我从 A 开始 Activity B enter image description here

从 Activity B 中的 webview 加载 URL

enter image description here

简单网页

enter image description here

在设备中,它不会发出任何警报

enter image description here

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

enter image description here

enter image description here

最佳答案

这是因为普通 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/

相关文章:

javascript - 当 overflow-x 设置为 hidden 时,处理可变高度图像的最佳方法是什么

Javascript、构建器模式和回调

android - SimpleCursorAdapter 和 ViewBinder - 将数据绑定(bind)到要在单击时检索的 ListView 项目

android - 如何更改 com.vanniktech.emoji.EmojiTextView 中的表情符号大小

javascript - 使用 AngularJS 保存修改后的 json 文件

javascript - 在某些迭代中更改 div 中的类

javascript - Javascript RegEx 查询

android - 设置复选框列表对话框的复选框

javascript - PhoneGap 相机插件(Javascript 示例)中声明的 "imageUri"在哪里?

jquery - 如何从应用程序(jqm+phonegap)将数据保存到远程服务器上?