1

我想保存在应用程序处于后台状态时到达的推送通知。我知道ios在后台处理pushnotification

-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

当应用程序在前台或后台(如果用户只需点击收到的通知),该委托方法被调用。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

这种方法被称为只有当应用程序启动时。

如果用户没有点击通知,该怎么办?在那种情况下,如何将该通知的数据保存在我的应用程序的数据库中?

回答

1

对于这种情况,您不能将数据保存在'您的应用程序的数据库'中;而是将数据保存在服务器上的数据库中,这是首先生成PushNotification的地方。然后,当您的应用程序启动时,它会查询您的数据库以获取通知数据。

+0

您可以使用通知设置徽章计数,并且只有在计数大于零时,才能查询服务器。 –

+0

thanx @GoZoner您的答案对我来说也很有价值。 – Rivan

+0

@rivan,那么你应该投票GoZoner的答案。 –

3

如果用户没有单击通知,则无法保存该数据。 即使用户通过点击其启动图标打开应用,该应用也不会收到该数据。

还记得通知的设计是提供小有效载荷来提醒用户。 用户启动应用程序后,应用程序可以下载要保存的真实数据。

+1

如果用户没有点击通知,只要您的应用程序正在运行,您的应用程序仍然会收到通知,但您的应用程序变为活动状态之前无法处理该通知。这在iOS7中发生了变化。我相信即使应用程序未处于活动状态(但正在后台运行),您的应用程序也可以处理通知。 –

+1

@MarcusAdams你知道任何可以指导我们的文档/资源吗?解释如何在iOS7的后台获取这个远程推送通知数据? – Archie1986