Swiftui: Как я могу перейти к указанной c NavigationLink, когда пользователь нажимает на уведомление pu sh? - PullRequest
3 голосов
/ 25 марта 2020

Я использую FCM с моим ios pu sh уведомлением. Как я могу перейти к указанной c навигационной ссылке, когда пользователь нажимает на уведомление pu sh. Заранее благодарю за помощь!

Я понимаю, что обработаю нажатие уведомления pu sh для этой функции.

    func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
        let userInfo = response.notification.request.content.userInfo
        // Print message ID.
        if let messageID = userInfo[gcmMessageIDKey] {
            print("Message ID userNotificationCenterdidReceive response: \(messageID)")
        }
        // Print full message.
        print(userInfo)

        let application = UIApplication.shared

        if(application.applicationState == .active){
          print("user tapped the notification bar when the app is in foreground")
        }
        if(application.applicationState == .inactive)
        {
          print("user tapped the notification bar when the app is in background")
        }

        completionHandler()
    }

У меня также есть @EnvironmentObject, управляющий которым tabItem активен и какая навигационная ссылка открыта.

Как получить доступ к этому объекту EnvironmentObject в моей функции UNNotificationResponse didReceive?

1 Ответ

1 голос
/ 27 марта 2020

Предполагая, что этот обратный вызов находится в AppDelegate, вы можете сделать AppDelegate владельцем вашего общего объекта, который используется в качестве объекта среды, чтобы у вас был доступ к нему, а также в обратных вызовах делегата приложения и в делегате сцены для вставки в представление содержимого.

См. Мой предложенный подход для аналогичного сценария в Делегат приложения, обращающийся к объекту среды

...