iOS - 读取推送通知一旦收到

时间:2017-08-11 09:10:13

标签: ios swift3 push-notification apple-push-notifications

我有4个场景

当应用未启动时

鉴于应用程序未启动或被杀死 推送通知收到时 并且在不点击通知的情况下打开了应用程序 然后应用程序应捕获通知。

应用程序在前台运行时

鉴于应用程序在前台运行
推送通知收到时 然后应用程序应捕获通知。

当应用在后台运行时

鉴于应用程序正在后台运行
推送通知收到时 并且在不点击通知的情况下打开了应用程序 然后应用程序应捕获通知。

当应用未启动并清除通知时

鉴于应用程序未启动或已杀死 推送通知收到时 并且用户清除了通知
并打开应用程序
然后应用程序应捕获通知。

前3个方案适用于以下代码

最后一个方案无效当应用未启动并清除通知时

的AppDelegate

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    if #available(iOS 10.0, *) {
        UNUserNotificationCenter.current().getDeliveredNotifications(completionHandler: { requests in
            for request in requests {
                self.setNotification(userInfo: request.request.content.userInfo as NSDictionary)
            }
        })
    }
    return true
}

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
    setNotification(userInfo: userInfo as NSDictionary)
}

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

0 个答案:

没有答案