У меня есть приложение с кордорой. Я использую phonegap serve
для загрузки приложения с помощью приложения для создания мобильных приложений.Приложение Phonegap Content-Security-Policy
В 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
Тогда я открываю PhoneGap приложение в iPad, я запускаю 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 правильно загрузить директиву?
EDIT
Я также попытался скомпилировать PhoneGap разработчиком приложения с директивой НСП в index.html
, результат тот же
EDIT - 1
Я также скачал zip-файл от http://192.168.1.130:3200/__api__/appzip
(здесь у меня есть мой сервер phonegap serve
) и 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://*" />
Есть ли у вас плагины? Возможно, некоторые из плагинов перезаписывают метатег. –