1

У меня есть приложение с кордорой. Я использую 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://*" /> 
+0

Есть ли у вас плагины? Возможно, некоторые из плагинов перезаписывают метатег. –

ответ

0

Это было связано с этим вопросом: https://github.com/creationix/nvm/issues/1361

В основном, Баш обнаруживал, что v6.4.2 и указывая на него (which phonegap указывал правильная версия), но при выполнении phonegap из командной строки он выполнял v6.0.2, что, вероятно, не создавало правильный CSP.