【发布时间】:2013-05-02 17:55:41
【问题描述】:
我有一个基于 cordova 2.6 和 jqm 1.3 的 iOS/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 上,一切都像我预期的那样运行。加载了 google 网站的新浏览器窗口打开。但我无法在 Android 中加载任何内容。当我单击按钮时,什么也没有发生。我已经在 window.open 之前和之后添加了控制台语句,所以我知道代码至少正在执行。
我的 config.xml 应该对白名单网站开放:
<access origin=".*"/>;
我在 Nexus 7 (android 4.2) 和 android 2.2 模拟器上进行了测试,结果相同。
有谁知道为什么 window.open 不能在 android 上正确触发?
【问题讨论】:
-
您的 config.xml 文件中是否列出了 InAppBrowser 插件?您在 AndroidManifest.xml 中有 Internet 权限吗?
-
两者都在里面。我刚刚使用了您创建新 phonegap 项目时创建的基本清单。
<uses-permission android:name="android.permission.INTERNET" />在我的清单中,<plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser"/>在我的 config.xml 中 -
我刚刚在我的 Nexus 7 (4.2) 上尝试了相同的设置并且没有遇到问题...但是,我没有使用 jqm...也许这可能是个问题?如果您只是使用 vanilla javascript 启动该功能,它可以工作吗?您确实说过您收到了 console() 消息...我假设的日志中没有任何内容?