我有一个基于cordova 2.6和jqm 1.3构建的iOS/Android应用程序。我需要在用户点击一个按钮后打开一个到外部网站的链接。我正在使用的代码是:Phonegap window.open不适用于Android
var ref = window.open('http://google.com','_self','location=yes');
ref.addEventListener('loadstart',function(event) {
console.log('load started');
});
ref.addEventListener('loadstop',function(event) {
console.log('load stopped');
});
ref.addEventListener('loaderror',function(event) {
console.log('load error = ' + JSON.stringify(event));
});
在iOS上,一切都像我所期望的那样执行。随着谷歌网站的加载,一个新的浏览器窗口打开。但我无法在Android中加载任何内容。当我点击按钮时,没有任何反应。我已经在window.open之前和之后放置了控制台语句,所以我知道代码至少正在执行。
我config.xml中应该是敞开的白名单的网站:
<access origin=".*"/>;
我已经在Nexus 7(安卓4.2)和Android 2.2的模拟器上都相同的结果进行测试。
有谁知道为什么window.open不会在android上正确触发吗?
您的config.xml文件中列出了InAppBrowser插件吗?你在AndroidManifest.xml中有互联网权限吗? – MBillau 2013-05-02 19:03:21
两者都在那里。我刚刚使用了创建新phonegap项目时创建的基本清单。 '<使用权限android:name =“android.permission.INTERNET”/>'是在我的清单和'<插件名称=“InAppBrowser”value =“org.apache.cordova.InAppBrowser”/>'是在我的配置.xml – whynotmatt 2013-05-02 19:56:05
我刚刚在我的Nexus 7(4.2)上尝试过使用相同的设置,但没有问题...但是,我没有使用jqm ...也许这可能是个问题?如果你只是用香草JavaScript启动该功能,它是否工作?你确实说过,你正在获取console()消息,但是......我假设在日志中没有任何内容? – MBillau 2013-05-02 20:05:45