WKWebView XMLHttpRequest не работает с настраиваемой схемой URL - PullRequest
0 голосов
/ 27 мая 2020

Я создаю мобильное приложение с помощью WKWebView. Я регистрирую пользовательские схемы URL-адресов image: // и thumb: // для передачи ресурсов из собственной части в веб-часть приложения.

webViewConfiguration.setURLSchemeHandler(handler, forURLScheme: "image")
webViewConfiguration.setURLSchemeHandler(handler, forURLScheme: "thumb")

Этот подход хорошо работает, если используются URL-адреса с настраиваемой схемой в HTML. Например, <img src="thumb://watermarkly.com/1.jpg" /> работает правильно - WKWebView вызывает мой обработчик и отображает результат. Однако WKWebView блокирует запросы, если я пытаюсь получить эти URL-адреса с помощью XMLHttpRequest:

[Warning] The page at https://watermarkly.com/app/watermark/ was allowed to display insecure content from thumb://watermarkly.com/1.jpg.

[Warning] [blocked] The page at https://watermarkly.com/app/watermark/ was not allowed to display insecure content from image://watermarkly.com/1.jpg.

[Error] Not allowed to request resource

[Error] XMLHttpRequest cannot load image://watermarkly.com/1.jpg due to access control checks.

Единственное различие заключается в том, что URL-адрес thumb: был назначен тегу img, а URL-адрес image: был получен через XMLHttpRequest. К сожалению, в Safari Developer Tools нет другой информации.

Проблема возникает только на реальных устройствах - все работает правильно в iOS Simulator.

Есть ли что-то, что мне нужно настроить, чтобы сделать он работает и для XMLHttpRequests?

Обновление

Мы перешли с HTTPS на HTTP, чтобы XHR решил проблему.

К сожалению, пользовательские схемы URL-адресов, похоже, не работают. некоторые айфоны. У нас 5 клиентов с iPhone, которые не переключаются на HTTP и не отправляют справку заголовка Access-Control-Allow-Origin. Нам не удалось определить, какой параметр вызывает проблему - проблема не может быть воспроизведена ни на одном из имеющихся у нас устройств. У обозревателя Apple тоже не было претензий. Ни XHR, ни получение изображений по URL-адресам не работают на этих телефонах. У одного из клиентов два телефона. Пользовательские схемы URL работают с одним из них, а со вторым - совсем не работают. Он говорит, что они идентичны и не установлены расширения Safari. К сожалению, нам не удалось определить причину проблемы. Помните, что настраиваемые схемы URL-адресов могут не работать на некоторых телефонах.

...