4

当我的应用程序未运行时如何处理推送通知我正在为 ios3 开发。请帮助

4

1 回答 1

14

一个简短的例子:

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

    NSDictionary *tmpDic = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];

    //if tmpDic is not nil, then your app is launched due to an APNs push, therefore check this NSDictionary for further information
    if (tmpDic != nil) {
        NSLog(@" - launch options dict has something ");
        NSLog(@" - badge number is %@ ", [[tmpDic objectForKey:@"aps"] objectForKey:@"badge"]);
        NSLog(@" - ");
    } 

编辑:关于您收到的 NSDictionary,来自 Apple 的官方文档:

您可以使用以下键访问 aps 字典的内容(尽管在大多数情况下您不需要这样做):

  1. alert - 该值可以是警报消息的字符串,也可以是具有两个键的字典:body 和 show-view。前者的值是警报消息,后者是布尔值(假或真)。如果为 false,则不显示警报的查看按钮。默认是显示 View 按钮,如果用户点击它,就会启动应用程序。
  2. 徽章 - 一个数字,指示要从提供程序下载的数据项的数量。此编号将显示在应用程序图标上。缺少标记属性表示应删除当前标记图标的任何数字。
  3. sound - 应用程序包中作为警报声音播放的声音文件的名称。如果指定“default”,则应播放默认声音。

字典还可能具有由提供者根据 JSON 模式定义的自定义数据。自定义数据的属性应与 aps 字典在同一级别指定。但是,不应将自定义属性用于海量数据传输,因为每个通知有严格的大小限制(256 字节)并且无法保证交付。

于 2011-01-24T13:29:53.003 回答