点击应用图标时无法获得推送(远程)通知

时间:2015-08-11 10:37:56

标签: ios background apple-push-notifications payload

根据Local and Remote Notification Programming Guide,当发送远程通知并点击SpringBoard中的应用图标时:

  

用户点击警告中的默认按钮或点击(或点击)应用图标。如果点击默认操作按钮(在运行iOS的设备上),系统将启动应用程序并且应用程序调用其委托的应用程序:didFinishLaunchingWithOptions:方法,传入通知有效内容(用于远程通知)或本地通知对象(用于本地通知)。

     

如果通知是远程的,系统也会调用application:didReceiveRemoteNotification:fetchCompletionHandler:。

但是,当我看到远程通知徽章并点击应用图标时,application:didFinishLaunchingWithOptions:(app将在后台运行),application:didReceiveRemoteNotification:application:didReceiveRemoteNotification:fetchCompletionHandler:都不会被调用。 ..

点击横幅广告或提醒时,我成功获得了推送通知的有效负载,点击应用图标时我怎么能得到它?

由于

2 个答案:

答案 0 :(得分:2)

你需要继续阅读。你引用的部分的其余部分是 -

  

如果在运行OS X的计算机上单击了应用程序图标,则应用程序会调用   委托的applicationDidFinishLaunching:方法中的   委托可以获取远程通知负载。 如果是应用图标   在点击运行iOS的设备上,该应用程序调用相同的方法,但是   不提供有关通知的信息。

请注意我加粗的部分。简短的回答是,如果从应用程序图标启动应用程序,则不会提供有关可能已收到的任何通知的信息。

答案 1 :(得分:0)

我遇到了同样的问题,不幸的是像Paulw11说的那样,你的应用程序将不会收到有关负载的信息。然而!我注意到徽章编号将反映错过的通知,因此在应用启动时,您可以检查是否applicationBadgeNumber != 0,如果不是,您可以向服务器查询已发送的最后数据。