Синхронизация с Safari - расширение для SFSafariViewController
Я знаю это SFSafariViewController
имеет частное хранилище cookie и другие реализации. Тем не менее, я знаю, что мы можем написать расширение для каждого (каждой собственной системы) класса Swift. Мне нужно либо поделиться куки с родным Safari, либо открыть Safari
из моего приложения с некоторым запросом заголовка. По крайней мере, как создать API
для получения / настройки файлов cookie?
1 ответ
- Совместное использование файлов cookie между SFSafariVC и собственным Safari было отключено в iOS >= 11.
На WWDC Apple объявила об изменении поведения Safari View Controller с iOS 11 в том смысле, что сохраненные данные (файлы cookie, локальное хранилище и т. Д.) Больше не будут совместно использоваться экземплярами Safari View Controller. Мы подтвердили это собственными силами с бета-версией, и это, кажется, независимо подтверждают ребята из Branch.
Из репо AppAuth-iOS: пользователь whitehatguy
- Единственный API для SFSafariVC - это создание нового экземпляра для данного URL. Вы не можете устанавливать или изменять куки.
Если вам нужно выполнить пользовательский код, взгляните на WKWebView (iOS> = 8) / UIWebView (iOS <8). Полезные ответы: Получение куки в WKWebView
SFAuthenticationSession был создан, чтобы разрешить потоки аутентификации SSO/OAuth, которые делят куки с собственным Safari, но у разработчиков нет прямого доступа.
Класс, который управляет совместным использованием одноразового входа в систему веб-службы вместе с файлами cookie и данными веб-сайта между Safari и приложением, которое также можно использовать для автоматического входа в систему для других связанных приложений.
Два случая, когда вы будете использовать SFAuthenticationSession:
- Вход в службу третьей стороны с использованием протокола аутентификации (например, OAuth). Эта опция хорошо работает для приложений социальных сетей.
- Обеспечение единого входа (SSO) для приложений. Этот вариант хорошо работает для корпоративных компаний, у которых на одном устройстве установлено много приложений.
Документация SFAuthenticationSession от Apple