Как обрабатывать метод SceneDelegate willConnectTo в новом жизненном цикле SwiftUIApp

#swiftui

#swiftui

Вопрос:

Как мне обработать этот метод в новом жизненном цикле приложения SwiftUI? Я смотрю на сцену, но в ней нет никакой информации о методах SceneDelegate

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { method in SwiftUI new App cycle.

Комментарии:

1. В жизненном цикле SwiftUI нет SceneDelegate. Зачем вам это нужно? Что вы хотите сделать?

2. Для удаленного уведомления. Я передаю удаленное уведомление в этом методе, когда приложение не запущено и запускается из уведомления.

Ответ №1:

Вы можете получать уведомления, когда устройство получает определенное уведомление, используя .onReceive модификатор. в вашем случае вы можете использовать .onReceive подобное поверх одного из ваших представлений, чтобы получать уведомления о подключениях к сцене:

 .onReceive(NotificationCenter.default.publisher(for: UIScene.willConnectNotification)) { notification in
                
            }
  

Ответ №2:

Вы можете получать уведомления через userNotificationCenter , даже если приложение не запущено и запускается из уведомления.

 func userNotificationCenter(_ center: UNUserNotificationCenter,
                                didReceive response: UNNotificationResponse,
                                withCompletionHandler completionHandler: @escaping () -> Void) {
        print("open notification")
        let userInfo = response.notification.request.content.userInfo
        
        print(userInfo)
        completionHandler()
    }