У меня есть SFSafariViewController, который открывается, когда пользователь нажимает на ссылку в моем приложении. Мне нужно определить, когда изменяется URL-адрес, так что при его изменении приложение отображает предупреждение. Как мы обнаруживаем изменения URL в SFSafariViewController?Обнаружение изменения URL-адреса в SFSafariViewController
ответ
Вы не можете этого сделать.
SFSafariViewController
предназначен для отправки пользователей в браузер, не заботясь о том, куда она идет, но когда она закончит, она вернется в ваше приложение без какой-либо потери контекста. Есть только очень мало вещей, которые вы можете настроить.
official docs Упоминание (курсив мой):
Если ваше приложение позволяет пользователям просматривать веб-сайты из любого места в Интернете, использовать класс SFSafariViewController. Если ваше приложение настраивается, взаимодействует с или управляет отображением веб-контента, используйте класс WKWebView.
Для обеспечения приятного просмотра с использованием WKWebView
потребуется больше работы (особенно некоторый пользовательский интерфейс), но вы находитесь под контролем. То же самое касается старшего брата, UIWebView
. Если вы не знаете, что использовать, this comparison может помочь, хотя некоторые вещи могут быть улучшены на стороне WKWebView
, так как статья была написана.
Обратите внимание на большую разницу между 'SFSafariViewController' и другими:' SFSafariViewController' делится данными с обычным веб-браузером на устройстве (и другими 'SFSafariViewController' s, включая файлы cookie и пароли. Единственная причина для его использования (и причина, по которой она была создана в первую очередь) для входа/единого входа и т. д. Если вам это не нужно, используйте 'UIWebView' или' WKWebView'. Если вам это нужно, стандартный способ выйти из ' SFSafariViewController' автоматически (после успешного входа в систему), это использовать настраиваемую схему URL. – jcaron