Используйте скрытый SFSafariViewController, чтобы получить куки Safari
Я читал следующий пост об аутентификации пользователей с мобильных веб-страниц в собственных приложениях iOS 9 и задавался вопросом, как наилучшим образом реализовать контроллер скрытого представления Safari, аналогичный скрытому контроллеру, о котором говорилось ниже?
3 ответа
Не используйте этот подход, если вы собираетесь распространять свое приложение в AppStore, потому что согласно обновленным Рекомендациям по обзору App Store:
5.1.1:
(iv) SafariViewContoller должен использоваться для визуального представления информации пользователям; контроллер не может быть скрыт или скрыт другими видами или слоями. Кроме того, приложение не может использовать SafariViewController для отслеживания пользователей без их ведома и согласия.
Это изменилось в iOS 11. В дальнейшем каждое приложение (включая само Safari) будет иметь полностью изолированное хранилище данных. Официальное объявление здесь (в 17:28).
Да здравствует невидимый SFSafariViewController. iOS 9 - iOS 10.
Если вам нужен способ передать гарантированное совпадение пользователей из Safari в ваше приложение, вам нужно использовать существующую сеть сопоставлений устройств, например https://branch.io/ (полное раскрытие: я в команде Branch). Вы можете прочитать о методах, которые использует Branch вместо передачи файлов cookie здесь.
Вы можете попробовать пример кода здесь: https://github.com/mackuba/SafariAutoLoginTest