phonegap window.location = url无法正常工作

时间:2017-06-16 21:06:33

标签: android cordova phonegap phonegap-cli

我是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;或不......

1 个答案:

答案 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应用程序附带了所有核心插件,但您的应用可能不会让它在模板上有所改变。