WKWebview [Предупреждение] [заблокировано] На странице https://www.myurl.com не разрешено отображать небезопасный контент из mycustomscheme: //? Path = somepath - PullRequest
0 голосов
/ 19 февраля 2019

Я недавно заменил UIWebview на WKWebview в своем гибридном приложении.Я использую пользовательскую схему для загрузки изображений из родной части приложения, как это рекомендовано Apple здесь: https://developer.apple.com/videos/play/wwdc2017/220/

Я загружаю изображения с URL-адреса, который выглядит как mycustomscheme://?path=somepath

Я добавил заголовок Content-Security-Policy, чтобы разрешить смешанный контент, и это выглядит так (ненужные части были удалены):

Content-Security-Policy: default-src 'self' www.myurl.com ; img-src 'self' mycustomscheme: ; script-src 'self' 'unsafe-inline' 'unsafe-eval' ; report-uri https://www.myreporturl.com/

Это работает для большинства устройств и позволяетпросите mycustomscheme пройти и сообщить myreporturl, если что-то было заблокировано.Однако на некоторых устройствах пользовательские запросы блокируются с этой ошибкой: [Warning] [blocked] The page at https://www.myurl.com was not allowed to display insecure content from mycustomscheme://?path=somepath, и на 10101 * не отправляется отчет, как если бы заголовок вообще не загружался.

Я подтверждаю, что заголовок действительно отправлен и что на проблемных устройствах установлена ​​последняя версия iOS (12.1.4).

Любые советы о том, как предотвратить получение пользовательских запросовзаблокирован будет высоко ценится!

Ответы [ 4 ]

0 голосов
/ 28 февраля 2019

Проблемы с https и http. Убедитесь, что все ваше содержимое - https :.Использование нескольких ресурсов сайта друг в друге смешивает это.Старайтесь не делать CORS.

0 голосов
/ 26 февраля 2019

Попробуйте:

Добавьте следующую строку в ваш файл info.plist:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>mycustomscheme</string>
</array>

Обязательно измените mycustomscheme на вашу собственную схему.

0 голосов
/ 28 февраля 2019

Попробуйте следующее для загрузки политики изображения:

img-src 'self' 'unsafe-inline' 'unsafe-eval' data: http: https: mycustomscheme: filesystem: file:;
0 голосов
/ 20 февраля 2019

Причина: Начиная с iOS 9, iOS будет позволять вашему приложению обмениваться данными только с серверами, которые по умолчанию обеспечивают оптимальную безопасность.Значения должны быть установлены в Info.plist для обеспечения связи с небезопасными серверами.

Решение: Добавьте следующий код в ваш info.plist для доверия вашему домену.

<key>NSAppTransportSecurity</key>
 <dict>
 <key>NSExceptionDomains</key>
 <dict>
  <key>www.myurl.com</key>
  <dict>       
   <key>NSExceptionRequiresForwardSecrecy</key>
   <false/>
   <key>NSExceptionAllowsInsecureHTTPLoads</key>
   <true/>
   <key>NSIncludesSubdomains</key>
   <true/>
 </dict>
</dict>
...