【问题标题】:ios handle pushnotification in backgroundios在后台处理推送通知
【发布时间】:2013-06-12 14:20:27
【问题描述】:

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

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

当应用程序处于前台或后台时调用此委托方法(如果用户只是点击收到的通知)。

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

该方法仅在应用启动时调用一次。

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

【问题讨论】:

    标签: iphone ios objective-c push-notification apple-push-notifications


    【解决方案1】:

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

    【讨论】:

    • 您可以通过通知设置徽章计数,只有当计数大于零时,才查询服务器。
    • thanx @GoZoner 你的回答对我也很有价值。
    • @MarcusAdams 这两个答案对我都有帮助,因为第一个解决了我的困惑,第二个给了我如何在应用程序处于后台状态时处理推送的答案。我别无选择,否则我选择了这两种解决方案作为答案。
    【解决方案2】:

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

    还请记住,通知的设计是提供小的有效负载来提醒用户。 一旦用户启动应用程序,应用程序就可以下载您要保存的真实数据。

    【讨论】:

    • 如果用户没有点击通知,只要您的应用程序正在运行,您的应用程序仍然会收到通知,但在您的应用程序激活之前您无法处理它。这在 iOS7 中发生了变化。我相信即使应用未处于活动状态(但在后台运行),您的应用也能够处理通知。
    • @MarcusAdams 你知道有什么文档/资源可以指导我们了解如何在 iOS7 的后台获取远程推送通知数据吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多