我刚刚将一个项目从Cordova 2.6升级到2.7,因为在Android上有一个带有localstorage的2.6中的错误。现在,在页面加载上,我以三种略微不同的方式呈现了这种精确性:
如果单击“确定”,页面将崩溃。它似乎来自于此:
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中,而且此应用程序同时适用于这两种情况。
答案 0 :(得分:0)
我认为您不应该在仅限Chrome的发行版中包含Cordova脚本。此警报正在弹出,因为Android内部Cordova使用alert()
机制在Cordova应用程序的JavaScript和Native代码部分之间传递事件。我很确定当你通过Chrome查看应用程序时,Cordova的其余部分从未真正设置(原生部分),因此不会捕获警报,而是实际显示在Chrome浏览器中。
如果您正在开发的应用程序适用于Chrome和Android(我假设您通过Cordova将其打包到本机.apk中?),我很难理解您使用Cordova的用途。如果您没有使用Cordova提供的任何本机设备功能(相机访问,加速度计等)并且只是使用它来将Web应用程序包装在本机shell中,您可能会发现更容易开发(适用于Chrome) )并发布网络应用程序......好吧,一个网络应用程序。
虽然我认为Cordova的主要优势之一是以原生应用程序的形式提供更大的分发潜力。如果您正在计划这样做,那么我会说在Chrome上测试时忽略警报。如果您计划发布本机应用程序(通过Cordova)和Web应用程序,只需从Web应用程序的生产版本中删除Cordova脚本即可。