我是Phonegap开发的新手,我正在尝试一些看起来相当简单但不起作用的东西。
我跟着Phonegap"开始了#34;指导并拥有" PhoneGap开发人员" app安装在我的Android手机上。我创建了一个应用程序,并使用phonegap serve
进行服务。我删除了默认js/index.js
并致电app.initialize()
,并将以下内容添加到index.html
中:
<script>
function onDeviceReady() {
if (navigator.connection.type == Connection.NONE) {
navigator.notification.alert(
'An internet connection is required to continue');
} else {
navigator.notification.alert("HERE!");
window.location = "https://google.com";
}
}
document.addEventListener("deviceready", onDeviceReady, false);
</script>
如果我使用Chrome浏览器访问该应用,则会正确加载,提供弹出消息,然后加载Google。如果我尝试使用Android PhoneGap Developer应用程序,它会弹出消息,然后什么都不做。
在config.xml中,我尝试将所有内容设置为尽可能宽松,以使其正常工作:
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
在服务器控制台上,我收到以下警告:
[phonegap] [console.warn] Content Security Policy has been modified to be: <meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' gap: ws: https://ssl.gstatic.com;style-src 'self' 'unsafe-inline' data: blob:;media-src *;img-src * 'self' data: content:;script-src * 'unsafe-inline' 'unsafe-eval' data: blob:;">
我对CSP政策不够熟悉,无法确定该政策是否实际上限制了加载&#39; google.com&#39;或不......
答案 0 :(得分:2)
Phonegap开发者应用程序本身就是一个Phonegap应用程序,因此它使用自己的config.xml而不是使用你的。您可以在github repo上看到它没有任何允许导航规则。因此,它不允许导航到谷歌或任何其他网站。
在Phonegap开发者应用中运行自己的应用而不是“预览”它需要做什么。
这是运行您的应用phonegap run android
此外,您可能需要使用phonegap plugin add cordova-plugin-whitelist
安装白名单插件或将<plugin name="cordova-plugin-whitelist" spec="~1.3.2" />
添加到config.xml,因为Phonegap Developer应用程序附带了所有核心插件,但您的应用可能不会让它在模板上有所改变。