2012-07-22 109 views
8

我实现当我的应用程序在后台,推送通知是只有当我触顶通知横幅

application:didReceiveRemoteNotification: 

收到推送通知时,将数据存储在我的应用程序处理。

然而,当我的应用程序在后台,我收到通知,该数据只有当我触摸显示在上面的通知旗帜存储:

enter image description here

相反,如果我触摸应用程序图标重新打开它,通知的内容没有存储:

enter image description here

因为我收到了通知,只有当我使用分布图,我不确定是否仅当我将通知横幅推到顶部时才会调用application:didReceiveRemoteNotification:

我认为它总是在收到通知时调用,而不是在设备上的用户操作之后调用。

UPDATE。 我不知道这是否可以帮助,但只是为了让你知道,我还没有实现任何的这些方法:

– applicationDidEnterBackground: 
– applicationWillEnterForeground: 
- applicationDidBecomeActive: 

回答

1

我想我已经找到了原因。从技术文档:

如果操作按钮被窃听(运行iOS的设备上),该系统 启动应用程序和应用程序调用其委托的 应用中:didFinishLaunchingWithOptions:方法(如果实现的话);它 传入通知负载(用于远程通知)或本地通知对象(用于本地通知)。

如果在运行iOS的设备上轻敲应用程序图标, 应用程序将调用相同的方法,但不会提供有关通知的信息 。

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html

不过,我不知道是否有一种方式来加载,即使应用程序已经通过触摸图标重新打开有效载荷。

+1

我知道这已经有一段时间了,但是您是否已设法检测/加载有效负载,即使应用程序是通过点击图标而不是通知打开的? – 2013-04-24 16:46:10

+0

发布的链接不再可用,downvote不是我的... – ashokdy 2014-05-13 06:45:58

相关问题