javascript - Cordova 2.7 页面加载时出现提示消息

标签 javascript cordova

由于 Android 上的本地存储 2.6 存在错误,我刚刚将项目从 Cordova 2.6 升级到 2.7。现在,在页面加载时,我以 3 种略有不同的方式看到了这一点:

enter image description here

如果我单击“确定”,页面就会崩溃。它似乎来自于此:

module.exports = {
  exec: function(service, action, callbackId, argsJson) {
    return prompt(argsJson, 'gap:'+JSON.stringify([service, action, callbackId]));
  },
  setNativeToJsBridgeMode: function(value) {
    prompt(value, 'gap_bridge_mode:');
  },
  retrieveJsMessages: function() {
    return prompt('', 'gap_poll:');
  }
};

如何防止这种情况发生?

编辑: Android 本身似乎不会发生这种情况,但 Chrome 中确实会发生这种情况,并且此应用程序在这两种浏览器中均适用。

最佳答案

我认为您不应该在仅 Chrome 发行版中包含 Cordova 脚本。弹出此警报是因为 Cordova for Android 在内部使用 alert() 机制在 Cordova 应用程序的 JavaScript 和 native 代码部分之间传递事件。我非常确定,当您通过 Chrome 查看应用程序时,Cordova 的其余部分从未真正设置过( native 部分),因此不会捕获警报,而是实际显示在 Chrome 浏览器上。

如果您正在开发的应用程序可以在 Chrome 和 Android 中运行(我假设您通过 Cordova 将其打包到 native .apk 中?),我很难理解您使用 Cordova 的目的。如果您没有使用 Cordova 提供的任何 native 设备功能(相机访问、加速计等),而只是使用它来将 Web 应用程序包装在 native shell 中,您可能会发现开发起来更容易(对于 Chrome )并发布 Web 应用程序……好吧,一个 Web 应用程序。

尽管我确实认为 Cordova 的主要好处之一是以 native 应用程序的形式具有更大的分发潜力。如果这就是您打算做的事情,那么我建议您在 Chrome 上进行测试时忽略该警报。如果您计划发布 native 应用程序(通过 Cordova)和 Web 应用程序,只需从 Web 应用程序的生产版本中删除 Cordova 脚本即可。

关于javascript - Cordova 2.7 页面加载时出现提示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16569045/

相关文章:

javascript - 将数据结构从 Python 移植到 JS

javascript - 在 Node JS 中包含依赖的 JS 文件

ios - 自定义操作未显示在 iOS 推送通知中

javascript - 我无法在我的 cordova 应用程序中看到 OPENTOK 订阅者视频

javascript - 滚动网格以显示列

javascript - 从 Ajax 调用 .Net 中的 SOAP Web 方法时出现 500 服务器错误

javascript - 使用 Selenium 截取屏幕截图元素?

javascript - iOS 上的 Cordova 应用程序中的 deviceready 未触发

android - 为 Cordova 将 “exclude module” 规则添加到 plugin.xml 中的条目

json - 服务在 Controller 之后运行?返回未定义