Как получить детали доставленного уведомления в appdelegate - PullRequest
0 голосов
/ 07 ноября 2018

Мне удалось получить сведения об уведомлении при открытии приложения, коснувшись уведомления, но если пользователь открывает приложение, просто щелкнув значок приложения, есть ли способ получить сведения о доставленных уведомлениях внутри приложения

func applicationWillResignActive(_ application: UIApplication) {

        if #available(iOS 10.0, *) {

            let center = UNUserNotificationCenter.current()
            center.getDeliveredNotifications { (notification) in
                print(notification.count) 

            }

        } else {
            // Fallback on earlier versions
        }

    }

здесь у меня есть счетчик уведомлений, но я не знаю, как получить детали (userinfo) уведомления здесь

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Если ваше приложение было принудительно закрыто (проведено) и пользователь щелкнул уведомление, чтобы открыть приложение, вы все равно можете получить эту информацию в методе AppDelegate didFinishLaunchingWithOptions:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    if let userInfo = launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] as? [String: AnyObject]{
        //Here you can use the notification payload information.
    }

    return true
}
0 голосов
/ 07 ноября 2018

я нашел ответ

func applicationDidBecomeActive(_ application: UIApplication) {
        if #available(iOS 10.0, *) {

            let center = UNUserNotificationCenter.current()


            center.getDeliveredNotifications { (receivedNotifications) in


                for notification in receivedNotifications {
                    let content = notification.request.content
                    print(" Body \(content.body)")
                    print(" Title \(content.title)")
                    print(content.userInfo as NSDictionary)

                    self.session.saveCallRequest(content.userInfo as NSDictionary)

                }

            }
    }
...