当应用处于后台状态时,我必须进行两个不同的实验,
我使用以下方法: 当用户通过点击警报消息来响应通知时,系统将调用以下方法并显示结果。
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void)
如果您的应用程序位于前台并且有通知到达,则通知中心将调用以下方法将通知直接传递到您的应用程序。
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
答案 0 :(得分:0)
您可以使用application:didReceiveRemoteNotification:fetchCompletionHandler:
方法。当推送通知到达时,系统会向用户显示通知,并在后台启动应用程序(如果需要),以便可以调用此方法。来自Apple's Docs:
如果您的应用支持远程通知,请实施此方法 后台模式。 ...当推送通知到达时,系统 向用户显示通知,并在 背景(如果需要),以便它可以调用此方法。用这个 下载与推送通知相关的任何数据的方法。什么时候 方法完成后,调用handler参数中的代码块。
与application:didReceiveRemoteNotification:方法不同,该方法是 仅在您的应用运行时调用,系统才会调用此方法 不论您的应用程序状态如何。
关于above方法的使用:
它告诉应用程序有一个远程通知到达,表明有数据要提取。