【问题标题】:PhoneGap on Android wont load external scriptsAndroid上的PhoneGap不会加载外部脚本
【发布时间】:2012-02-21 03:14:40
【问题描述】:

我正在制作一个可以加载谷歌地图的简单应用。但问题是每次我加载这个

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

它不会在我的安卓模拟器上运行,而在桌面上它工作正常。如何让 Phonegap 或 Android 允许外部脚本工作/加载?

更新:我总是收到此错误“应用程序错误:与服务器的连接不成功。(文件///android_asset/www/index.html)。但如果我删除了谷歌地图脚本。它可以工作。

【问题讨论】:

    标签: javascript android cordova


    【解决方案1】:

    其实白名单就是@TDeBailleul所说的问题,但他指的是iOS而不是Android中白名单的位置。

    在android中,它位于/res/xml/PhoneGap.xml

    此答案中有此文件的示例:https://stackoverflow.com/a/9187479/878602

    【讨论】:

    • 还是不行。不过,我还没有在实际手机上尝试过。这是我现在在 PhoneGap 上唯一的问题。
    • 也许你正在尝试做更多的事情?我当然没有收到任何错误,包括香草应用程序中的脚本标签
    • 你能给我一份你的phonegap.xml的样本吗?这是我的,但不起作用。 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;phonegap&gt; &lt;access origin="http://127.0.0.1*"/&gt; &lt;access origin="http://maps.googleapis.com*"/&gt; &lt;access origin="http://maps.google.com*"/&gt; &lt;log level="DEBUG"/&gt; &lt;/phonegap&gt;
    • 我能知道你用什么版本的PhoneGap和你制作的香草应用程序吗?
    • 有效!非常感谢。看来我的模拟器有问题。我刚刚设法得到了一部Android手机并进行了测试。谢谢!
    【解决方案2】:

    在最新的 PhoneGap 版本(2.7.0)中。您应该修改位于 Android 项目的 /res/ 目录中的文件“config.xml”。只需添加:

    <access origin="http://www.yourdomain.com" subdomains="true" />
    

    除非另有设置,否则假定域被阻止。

    【讨论】:

      【解决方案3】:

      在 phonegap 5.1 版中,情况与上述答案不同。

      安装了一个名为cordova-plugin-whitelist 的插件。阅读plugins/cordova-plugin-whitelist/README.md 的文件以了解详细信息。

      有多种白名单(导航、意图和访问来源),在这种情况下,您需要内容安全策略。

      <!-- Enable all requests, inline styles, and eval() -->
      <meta http-equiv="Content-Security-Policy" content="script-src: 'self' 'unsafe-inline' 'unsafe-eval' 'https://maps.google.com'">
      

      【讨论】:

        猜你喜欢
        • 2011-12-23
        • 2013-08-31
        • 1970-01-01
        • 1970-01-01
        • 2014-04-11
        • 1970-01-01
        • 2012-08-15
        • 1970-01-01
        • 2015-02-17
        相关资源
        最近更新 更多