Как я могу разрешить приложению Cordova 6.1 встраивать iframe в iOS с веб-сайта?
До тех пор, пока я недавно не построил, мое приложение Cordova прекрасно встраивало iframe веб-сайта; теперь, предположительно, после обновления, о котором я забыл, создание приложения приводит к тому, что iframe будет пустым на iOS, но работает на Android.
Я добавил следующие настройки в config.xml:
<access origin="*"/>
<access origin="*.pushwoosh.com" />
<access origin="*.hoby.org" />
<allow-navigation href="*" />
<allow-intent href="*" />
А также следующую Политику безопасности контента:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
Который должен позволять в основном все. У меня есть плагин Cordova-белый список, используя Cordova 6.1.0 и Ionic 1.7.14
Изменить: на самом деле он работает на эмуляторе iOS, но не когда я запускаю его на устройстве.
Изменить 2: кажется, что это может быть проблема мобильного сафари; Я просматриваю файлы в своей сети, и даже за пределами Cordova они загружаются неправильно. Хотя я могу подтвердить, что это работало, по крайней мере, несколько дней назад.
1 ответ
@Фил,
Ваше заявление о whitelist
Плагин закрыт, но, вероятно, не работает, потому что у вас есть JavaScript в вашем index.html. CSP
остановил многих разработчиков. Самое простое, что можно сделать - это переместить все Javascript и CSS в свои отдельные файлы.
Если не считать этого, вот широко применяемое решение:
Как примечание стороны, whitelist
система требуется с Cordova Tools 5.0.0 (21 апреля 2015 г.). Для PhoneGap Build это означает, что с cli-5.1.1
(16 июня 2015 г.)
Добавьте это к вашему config.xml
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
ПРИМЕЧАНИЕ ВАШЕ ПРИЛОЖЕНИЕ СЕЙЧАС НЕОБХОДИМО. ЭТО ВАМ БЕЗОПАСНО, ЧТОБЫ ЗАЩИЩАТЬ СВОЕ ПРИЛОЖЕНИЕ.
Добавьте следующее к вашему index.html
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src * 'self' 'unsafe-inline' 'unsafe-eval';
script-src * 'self' 'unsafe-inline' 'unsafe-eval';">
ПРИМЕЧАНИЕ ВАШЕ ПРИЛОЖЕНИЕ СЕЙЧАС НЕОБХОДИМО. ЭТО ВАМ БЕЗОПАСНО, ЧТОБЫ ЗАЩИЩАТЬ СВОЕ ПРИЛОЖЕНИЕ.
Этот белый список должен помочь.
КАК применить систему белого списка Cordova/Phonegap