Как передать URL для открытия в веб-представлении из уведомления в Swift 4.2 - PullRequest
0 голосов
/ 15 декабря 2018

До сих пор в моем делегате мне удавалось успешно получить URL-адрес из уведомления, где у меня возникают проблемы с передачей URL-адреса в мой viewcontroller.swift для открытия URL-адреса в веб-представлении.Я пробовал несколько примеров из стека, но они не работают с Swift 4.2.Может кто-нибудь мне помочь?Извините, я новичок в Swift.

AppDelegate.swift

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {

    let data = userInfo as! [String: AnyObject]

    let state = UIApplication.shared.applicationState

    if state == .background {
        // background
        print("==== Active Running ====")
        if let aps = data["aps"] {
            let url = aps["url"]
        }
    }
    else if state == .inactive {
        // inactive
        print("==== Inactive Running ====")
        if let aps = data["aps"] {
            let url = aps["url"]
        }
    }
    else if state == .active {
        // foreground
        print("==== Foreground Running ====")
        if let aps = data["aps"] {
            let url = aps["url"]
        }
    }
}

1 Ответ

0 голосов
/ 15 декабря 2018

Если вы собираетесь инициализировать этот контроллер представления с нуля, вы можете просто сделать это в своем Appdelegate, где вы получите свой URL по:

        let storyBoard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyBoard.instantiateViewController(withIdentifier: "yourViewControllerID") as! YourViewController
        vc.url = url
        self.window?.rootViewController = vc

Также в файле YourViewController установите свой URL как:

var url = "" {
    didSet {
       //trigger your webView to start loading, you can also do it at viewDidAppear maybe.
       //example:
       let url = URL(string: url)
       let request = URLRequest(url: url)
       webView.loadRequest(request)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...