App Transport Security влияет только на вызовы сервера внутри приложения. Если вы загружаете URL-адреса в Safari, все будет в порядке. На самом деле, здесь есть хорошее руководство по разработчик, который пытается загрузить страницы в UIWebView, но если это не удается из-за ATS, вместо этого они загружают их в Safari.
Еще одно замечание: вам следует рассмотреть возможность использования SFSafariViewController
для открытия URL-адресов в вашем приложении, но со всеми преимуществами открытия в Safari. SFSafariViewController
допускает произвольные загрузки (то есть не применяет ATS), но позволяет удерживать пользователей внутри вашего приложения. Это, безусловно, стоит учитывать, если вы ориентируетесь на iOS 9 и новее.
Кроме того, в вашем вопросе есть немного неверное утверждение о том, что ATS будет более строгим, начиная с 2017 года, но все же будут разрешены исключения. Некоторым медиапотокам не потребуется ATS (из-за накладных расходов на шифрование чего-то вроде видео), а также ваши приложения по-прежнему могут запрашивать исключение у Apple, но еще неизвестно, что Apple сочтет допустимым обоснованием для исключений. Кроме того, Apple по-прежнему будет разрешать приложениям делать исключения для требования прямой секретности ATS. Так что это не так просто, как говорится в вашем вопросе.
Изменить: похоже, что Apple добавила новое исключение, которое вы можете использовать, чтобы разрешить соединения без ATS в экземплярах UIWebview
и WKWebview
. Это NSAllowsArbitraryLoadsInWebContent
. Это должно делать именно то, что вы ищете. Вот отличный обзор последних новостей с ATS: подготовка к ATS в 2017 году.
person
wottle
schedule
25.07.2016