我正在使用Phonegap Developer应用程序测试我的phonegap应用程序。我开始收到有关缺少Content-Security-Policy元信息的控制台警告。由于Phonegap默认模板不包含任何CSP,因此我决定使用Cordova。我已经在index.html中包含了白名单插件(cordova-plugin-whitelist)和以下一行:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
问题是,在此之后,Phonegap Developer应用程序不再更新。它停留在默认应用模板中的“连接到设备”中。 Console.log也不起作用。
我错过了什么吗?什么是正确的CSP?
非常感谢任何想法! :)
答案 0 :(得分:0)
确保您拥有控制台插件。
答案 1 :(得分:0)
我有点同样的问题。确保您允许unsafe-inline
脚本和样式表:
<meta http-equiv="Content-Security-Policy" content="
default-src *;
style-src * 'unsafe-inline';
script-src * 'unsafe-inline';
" />
作为参考,here是Content-Security-Policy文档。
答案 2 :(得分:0)
我遇到了你提到的同样问题。
首先,您必须将其添加到setText
config.xml
第二:你必须将CSP添加到索引中:
<allow-navigation href="http://*/*"/>
<allow-intent href="http://*/*"/>
<allow-intent href="tel:*"/>
这里有一些事情发生,所以让我们把它分解成组成指令。
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
允许来自上述任何来源的JavaScript使用动态JavaScript评估:例如使用eval()。
'unsafe-eval'
Cordova,间隙方案使得JS&lt; - &gt;适用于iOS的本地通信。
gap:
特定于Cordova,Android所需,以便TalkBack(辅助功能)正常运行。
以下是每个值的完整文档含义: http://content-security-policy.com/
干杯。