我正在用cordova 构建一个应用程序。我正在使用phonegap serve
phonegap 开发人员应用程序加载应用程序。
在index.html
:
<meta http-equiv="Content-Security-Policy" content="default-src gap: file: tel: *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *">
(我也试过没有file: tel:
,结果是一样的)
我可以验证这是正确准备的platforms/browser/www/index.html
然后我在 iPad 上打开 phonegap 应用程序,我运行phonegap serve
,我打开 Safari 开发工具,按下连接,它是:
Refused to load gap://ready because it appears in neither the child-src directive nor the default-src directive of the Content Security Policy.
在index.html
我可以看到该指令已转换为:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
有没有办法让 ipad 正确加载指令?
编辑
我也试过用 CSP 指令编译 phonegap 应用程序开发人员index.html
,结果是一样的
编辑 - 1
我还从http://192.168.1.130:3200/__api__/appzip
(这是我的phonegap serve
服务器所在的位置)下载了 zip 文件,并且index.html
已经转换了!
奇怪的是它platforms/browser/www/index.html
没有被转换,所以中间有一些过程正在转换 CSP。
在我的config.xml
我有这个指令:
<content src="index.html" />
<access origin="*" />
<access origin="cdvfile://*" />
<access launch-external="yes" origin="tel:*" />
<!-- Allowed WebView navigations -->
<allow-navigation href="http://*"/>
<allow-navigation href="https://*"/>
<allow-navigation href="http://*/*"/>
<allow-navigation href="https://*/*"/>
<allow-navigation href="data:*"/>
<allow-navigation href="about:*"/>
<allow-navigation href="tel:*"/>
<allow-navigation href="gap:*" />
<!-- Allowed URLs to be opened from the app -->
<allow-intent href="http://*"/>
<allow-intent href="https://*"/>
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="geo:*"/>
<allow-intent href="cdvfile://*" />