这让我脱掉了头发,因此急于开始在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'">
我发现here描述了相同的问题,并尝试合并找到的建议以及PhoneGap Documentation的其他建议,但尚未成功。
为了更具体地解决这个问题,我尝试允许的资源是Google Maps V3。我确定我错过了一些小东西,会很感激,甚至是一个简单的建议。
谢谢!
更新1
很好,@ Fido,但不幸的是,事实证明这不是唯一的问题。我现在正在使用文档here记录的PhoneGap插件,并在我的 config.xml 中替换,但没有任何改进。我注意到的有趣的事情是插件没有显示为在项目的插件摘要中使用(我现在发现它存在)。所以,我想说尽管有文档,它仍然无法提取它所描述的资源。
我会给任何人一个机会提出任何额外的建议,但最终我可能不得不咬紧牙关并按照Fido的建议进行本地建设。
更新2
事实证明,我没有正确地将我的config.xml推送到存储库,因此它现在反映出我正在使用whitelist plugin provided by Corova,但没有帮助。在构建本地之前我会看到是否有任何插件,并使用其他建议的插件。
更新3
好消息;我能够从here指定相同插件的NPM包: <gap:plugin name="cordova-plugin-whitelist" version="1.0.0" source="npm" />
据我所知,这是你所建议的镜子@Fido(如果我错了,请纠正我),但问题仍然存在;我只能想象它是我的起源,允许意图或内容安全策略定义是不正确的。
谢谢!
答案 0 :(得分:2)
使用Cordova 4.0及更高版本时,您需要添加this插件才能让白名单工作得更好。
在你的情况下,因为你正在使用phonegap构建平台这一行:
<plugin name="cordova-plugin-whitelist" version="1" />
实际上应该是这样的:
<gap:plugin name="cordova-plugin-whitelist" version="1" />
如果云服务证明太有限,那么您可以使用CLI安装cordova插件,然后在本地构建和部署。 关于此appraoch here的更多信息。这种方法需要更多的设置工作(例如获取android sdk),但从长远来看,我认为开发速度要快得多。