当前位置: 代码迷 >> Android >> 将适用于Android Lollipop 5.0的Phonegap中的URL列入白名单
  详细解决方案

将适用于Android Lollipop 5.0的Phonegap中的URL列入白名单

热度:95   发布时间:2023-08-04 10:40:38.0

这使我不知所措,因此迫切希望开始在Android 5. *中进行测试,所以就这样。

首先,这是我所拥有的:

config.xml

<access origin="*.google.com"/>
<access origin="*.gstatic.com"/>
<access origin="*.googleapis.com"/>
...
<plugin name="cordova-plugin-whitelist" version="1" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />

index.html

<head>
    ...


    <meta   http-equiv="Content-Security-Policy" 
            content="default-src 'self' https://*.google.com; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
    <meta   http-equiv="Content-Security-Policy" 
            content="default-src 'self' https://*.gstatic.com; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
    <meta   http-equiv="Content-Security-Policy" 
            content="default-src 'self' https://*.googleapis.com; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">

我发现描述了相同的问题,并尝试合并找到的建议以及其他建议,但均未成功。

为了更具体地解决此问题,我尝试允许的资源是Google Maps V3。 我确定我会遗漏一些小东西,将不胜感激,甚至是一个简单的建议。

谢谢!

更新1

@Fido很好发现,但不幸的是,事实证明这并不是唯一的问题。 我现在使用的是记录的PhoneGap插件,并以此替换了config.xml ,但没有任何改善。 我注意到的有趣的是,该插件未显示为在项目的插件摘要中使用(我现在发现它存在)。 因此,我想说的是尽管有文档,但它仍然无法按照它的描述提取资源。

我会给任何人一个提出任何其他建议的机会,但是最终我可能不得不硬着头皮按照Fido的建议进行本地构建。

更新2

事实证明,我没有将config.xml正确地推送到存储库中,因此现在反映出我正在使用的 ,但并没有帮助。 在构建本地版本并使用其他建议的插件之前,我将查看周围是否有任何插件。

更新3

好消息; 我可以从指定同一插件的NPM软件包:

<gap:plugin name="cordova-plugin-whitelist" version="1.0.0" source="npm" />

就我所能收集到的来说,它是您建议使用的镜像@Fido(如果我输入错了,请纠正我),但是问题仍然存在; 我只能想象这是我的起源,允许意图或Content-Security-Policy定义不正确。

谢谢!

使用Cordova 4.0或更高版本时,您需要添加插件才能使白名单更加有效。

在您的情况下,由于您正在使用phonegap构建平台,因此此行:

<plugin name="cordova-plugin-whitelist" version="1" />

实际上应该是这样的:

<gap:plugin name="cordova-plugin-whitelist" version="1" />

如果证明云服务太有限,则可以使用CLI安装cordova插件,然后在本地构建和部署。 有关此方法的更多信息,请参见 。 这种方法需要更多的设置工作(例如获取android sdk),但从长远来看,使开发更快。

  相关解决方案