点击前如何仅在推送通知到达时获取通知

时间:2018-07-02 10:35:08

标签: ios swift push-notification nsusernotificationcenter

当应用处于后台状态时,我必须进行两个不同的实验,

  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)

1 个答案:

答案 0 :(得分:0)

您可以使用application:didReceiveRemoteNotification:fetchCompletionHandler:方法。当推送通知到达时,系统会向用户显示通知,并在后台启动应用程序(如果需要),以便可以调用此方法。来自Apple's Docs

  

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

     

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

关于above方法的使用:

  

它告诉应用程序有一个远程通知到达,表明有数据要提取。