Swift 5 Safari открывается в приложении, и когда я переключаюсь на приложение, он снова открывает сафари, как будто застрял в цикле - PullRequest
0 голосов
/ 07 августа 2020

У меня есть требование, чтобы мне нужно было получить данные из api в appdelegate и решить, куда go, сценарий, в котором я столкнулся с проблемой, заключается в том, что я делаю WebViewController как root viewcontroller в делегате приложения сразу после того, как я получил данные из api у этого viewcontroller есть wkwebview, и я загружаю URL-адрес в этот wkwebview, который я получил из api, в то же время мне нужно открыть Safari с тем же URL-адресом, и я сделал это сразу после строки кода, в которой я сделал WebViewController как root ViewController. Проблема в том, что когда WebViewController загружается, затем открывается сафари, теперь, когда я переключаюсь с сафари на приложение, он снова открывает сафари, и это l oop продолжается.

Вот мой код AppDelegate.swift

if status == "1" {
            DispatchQueue.main.async {
                self.window?.rootViewController = WebViewController()
                self.window?.makeKeyAndVisible()
                
                if jump_type == "web" {
                    if let url = URL(string: urlStr) {
                        if UIApplication.shared.canOpenURL(url) {
                            UIApplication.shared.open(url, options: [:], completionHandler: nil)
                        }
                    }
                }
            }
        }
        else {
            DispatchQueue.main.async {
                self.window?.rootViewController = FirstViewController()
                self.window?.makeKeyAndVisible()
            }
        }
.... task.resume()

в WebViewController

override func loadView() {
    webView = WKWebView()

    webView.navigationDelegate = self
    view = webView
}

В WebViewController в viewdidload

let url = URL(string: urlStr)!
webView.load(URLRequest(url: url))
webView.allowsBackForwardNavigationGestures = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...