如何在推送通知到达时才收到通知,然后点击之前



当应用程序处于后台状态时,我必须触发两个不同的实验,

  1. 当通知到达用户但尚未点击时。(这没有实现(
  2. 在所有通知中,用户点击通知的次数 警报和打开应用程序(已实现(

我使用了以下方法: 当用户通过点击警报消息响应通知时,系统会调用以下方法并显示结果。

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

如果你的应用位于前台并且收到通知,则通知中心会调用以下方法将通知直接传递到你的应用。

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)

您可以使用application:didReceiveRemoteNotification:fetchCompletionHandler:方法。当推送通知到达时,系统会向用户显示通知,并在后台启动应用(如果需要(,以便它可以调用此方法。来自苹果的文档:

如果你的应用支持远程通知,则实现此方法 后台模式。...当推送通知到达时,系统将 向用户显示通知,并在 背景(如果需要(,以便它可以调用此方法。使用这个 下载与推送通知相关的任何数据的方法。什么时候 您的方法已完成,在处理程序参数中调用块。

与应用程序不同:didReceiveRemoteNotification: 方法,它是 仅在应用运行时调用,系统调用此方法 无论应用的状态如何。

关于上述方法的使用:

它告诉应用程序到达了远程通知,指示有要获取的数据。

相关内容

最新更新