iOS - в приложении не открываются ссылки на электронные письма, когда приложение убито - PullRequest
0 голосов
/ 30 ноября 2018

В моем приложении для iOS я открываю ссылки из электронной почты.Файл apple-app-site-association установлен хорошо.Для обработки ссылок я использую эту функцию в своем AppDelegate.swift:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {

    guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
        let url = userActivity.webpageURL,
        let components = URLComponents(url: url, resolvingAgainstBaseURL: true) else {
            return false
    }

    if (components.description.contains("/link1/")) {

        let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let initialViewControlleripad : ViewNewPass = mainStoryboardIpad.instantiateViewController(withIdentifier: "NewPass") as! ViewNewPass
        initialViewControlleripad.activationUrl = components.description
        self.window = UIWindow(frame: UIScreen.main.bounds)
        self.window?.rootViewController = initialViewControlleripad
        self.window?.makeKeyAndVisible()
        return true

    } else if (components.description.contains("/link2/")) {

        let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let initialViewControlleripad : ViewController = mainStoryboardIpad.instantiateViewController(withIdentifier: "Login") as! ViewController
        initialViewControlleripad.activationUrl = components.description
        self.window = UIWindow(frame: UIScreen.main.bounds)
        self.window?.rootViewController = initialViewControlleripad
        self.window?.makeKeyAndVisible()
        return true

    } else if (components.description.contains("/link3/")) {

        let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let initialViewControlleripad : ViewWrapper = mainStoryboardIpad.instantiateViewController(withIdentifier: "Wrapper") as! ViewWrapper
        initialViewControlleripad.memberActivation = components.description
        self.window = UIWindow(frame: UIScreen.main.bounds)
        self.window?.rootViewController = initialViewControlleripad
        self.window?.makeKeyAndVisible()
        return true

    } else {

        if let webpageUrl = URL(string: components.description) {
            application.open(webpageUrl)
        }
        return false

    }
}

Все это работает хорошо, пока мое приложение для iOS все еще находится в фоновом режиме.Когда приложение убито, и я пытаюсь открыть ссылку из электронной почты, я перенаправлен на начальный ViewController, а не на тот, который был установлен в предыдущем коде.Что вызывает эту проблему?Как я могу это исправить?

...