Я провел быстрый тест, и оказалось, что любые ресурсы, на которые есть ссылки, которые необходимо загрузить с помощью UIWebView
для правильного отображения страницы, должны соответствовать правилам ATS, а также соответствовать всем исключениям, которые вы указали в Info.plist
для вашего проекта. Если я пытался перейти по ссылке на не-https-сайт в UIWebView
, это также выдавало мне ошибки.
Я думаю, что лучше всего будет использовать SFSafariViewController
условно для пользователей iOS 9. Вы можете продолжать использовать UIWebView
для устройств iOS 7 и iOS 8, которые строго не применяют ATS. Это накладывает дополнительный код, но он должен быть минимальным.
Кроме того, просто разъяснение изменений Apple в отношении обеспечения безопасности транспорта приложений. Они объявили, что App Transport Security потребуется для приложений, отправленных после 31 декабря 2016 г.. Это означает, что влияние зависит не столько от операционной системы устройства пользователя, сколько от разработчиков, которые отправляют заявку. Кроме того, Apple по-прежнему разрешает добавлять исключения, если у вас есть обоснование. Мы еще не знаем, какие типы оправданий Apple позволит. Наконец, Apple заявила на своей сессии WWDC, что приложения могут по-прежнему включать исключение из части требований ATS, касающейся прямой секретности, без отдельного обоснования. Однако, пока мы не доберемся до 01.01.2017, мы не будем знать наверняка, как это будет работать.
Изменить: похоже, что Apple добавила новое исключение, которое вы можете использовать, чтобы разрешить соединения без ATS в экземплярах UIWebview
и WKWebview
. Это NSAllowsArbitraryLoadsInWebContent
. Это должно делать именно то, что вы ищете. Вот отличный обзор последних новостей с ATS: подготовка к ATS в 2017 г.
person
wottle
schedule
11.08.2016