У меня есть приложение ionic 5 Cordova 9, которое требует следующего поведения:
- В этом приложении должны загружаться графические баннеры, обслуживаемые веб-службой перекрестного происхождения, очевидно, внутри iframe.
- Графический баннер имеет гиперссылку, и после щелчка системный браузер должен перейти на ту веб-страницу, которая является еще одним перекрестным источником.
Вышеописанное прекрасно работает на Android с помощью config.xml и index.html, автоматически сгенерированных ionic & Cordova CLI. Когда я перенес код в iOS, мне пришлось внести изменения как в config.xml, так и в index.html, чтобы получить содержимое в iframe: после изменений в Config.xml есть соответствующие записи
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
Я добавил следующее в index.html
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; child-src *">
После вышеуказанных изменений я получаю баннер в iframe, но когда я нажимаю на баннер, ничего не происходит. Safari показывает, что сетевой запрос не генерируется. Как объяснялось ранее, я не контролирую содержимое iframe, поэтому не могу использовать InAppBrowser или аналогичные решения.
Я также пытался удалить cordova-plugin-whitelist, так как это не требуется на iOS, но это не имело никакого значения. Сейчас я не беспокоюсь об усилении безопасности. Я хочу заставить это работать сначала. Я изучил руководство по созданию белых списков Cordova и рассмотрел все связанные вопросы о переполнении стека, но не нашел решения. Я прошу рекомендации от экспертов.