Как сделать так, чтобы ссылки автоматически открывали приложение safari (не локально) в iOS с помощью Xcode / Swift? - PullRequest
0 голосов
/ 15 марта 2020

Я работаю над интеграцией Snap SDK в мое приложение и для входа в систему с Snapchat необходимо открыть веб-страницу Safari. Это делается автоматически с помощью SDK, но это открывает локальное сафари в приложении как всплывающее окно. Я не хочу, чтобы это происходило, так как в конце процесса входа на страницу пользователю предлагается «продолжить», что, если сделать это в приложении safari, вернет пользователя обратно в приложение, но если оно будет выполнено локально, ничего не произойдет (потому что приложение уже открыто). Это довольно неудобно, поскольку пользователь может запутаться. Мой код вызывает только логин, но он размещен ниже вместе с фотографией моего Info.plist. Как я могу заставить его НЕ открываться локально?

Код:

@IBAction func loginButtonTapped(_ sender: Any) {
    SCSDKLoginClient.login(from: self) { success, error in
        if let error = error {
            // An error occurred during the login process
            print(error.localizedDescription)
        } else {
            // The login was a success! This user is now
            // authenticated with Snapchat!
        }
    }
}

Info.plist

1 Ответ

0 голосов
/ 15 марта 2020

Убедитесь, что вы импортировали в свой ViewController следующее:

import UIKit
import Social
import SafariServices

Это откроет Safari напрямую, а не всплывающее окно сафари. Следует отметить, что Apple предпочитает, чтобы пользователь не выходил из приложения во время входа в систему, и может возникнуть недоразумение, связанное с этими механизмами, из-за которого ваше приложение не будет одобрено.

guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.shared.open(url)
...