iOS:在后台开始处理推送通知?

时间:2011-12-12 00:52:29

标签: ios ipad background push-notification

处理收件人应用尚未运行时到达的推送通知的常用方法是什么?我在应用程序启动时的印象,我可以检测到它是因为推送通知到达而启动,然后在后台开始下载而无需启动GUI。但是,如果用户在下载时启动应用程序,人们通常会做什么?只是显示警告或什么?感谢。

1 个答案:

答案 0 :(得分:4)

  

我的印象是我可以启动应用

这是一个糟糕的选择。 无能为力。用户可能会在收到推送通知后决定打开您的应用。

  

检测到它已启动,因为推送通知已到达

是的。应用程序:你的app委托中的didFinishLaunchingWithOptions将传入包含推送通知数据的字典(在这种情况下,示例代码是本地通知):

if ([UILocalNotification class]) // check if we support local notifications
    {
        UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];

        if (notification) {
            NSString *resourcePath = [notification.userInfo objectForKey:@"resourcePath"]; // get arbitrary data that you stored in the notification (key-value pairs)
        }

        application.applicationIconBadgeNumber = 0; // reset the app icon badge number
    }
  

在后台没有启动GUI

你做不到。应用启动的唯一可能工作流程是通知 - >用户点击阅读更多按钮 - >应用程序在前台打开。

  

如果用户在发生下载时启动应用,人们通常会做些什么?只是显示警告或什么?

这个问题并不适用,因为该应用程序无法在后台启动,但一般情况下,如果您的应用程序正在执行某项操作,用户通常不应关心正在发生的事情。因此,除非数据是应用程序运行所必需的,否则不应出现任何类型的警告。