调用哪种方法或如何在手动终止应用程序时远程推送通知到达时进行处理

时间:2016-10-17 07:06:52

标签: ios swift push

应用程序远程通知在应用程序为前台或后台状态时运行良好,但在手动终止应用程序时不起作用,

在plist中添加了背景提取。

试过:

 NSLog("Do something") 

这种方法仍然无法在swift中接收:

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) 

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

2 个答案:

答案 0 :(得分:0)

当您手动终止应用时,在再次启动应用之前无法处理remoteNotifications。

当存在远程通知,并且您通过点击该通知打开该应用时,应用会以通常的方式启动

didFinishLaunchingWithOptions
在app委托中调用

方法。但在这种情况下,您的通知数据会在'选项'中传递。参数。然后,您可以检查此参数并执行所需的任务

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{

    if (launchOptions != nil)
    {
        let dictionary:NSDictionary = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as! NSDictionary
        self.setNotification(dictionary)
    }

    return true
}

答案 1 :(得分:0)

当应用未运行时,您无法处理推送通知。您只能在用户打开应用程序表单通知时进行处理。 有关于此的好文章:How to handle remote notification with background mode enabled