如何在我的应用未运行时处理推送通知

Ali*_*Ali 4 iphone apple-push-notifications ios-3.x

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

Di *_* Wu 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(@" - ");
    } 
Run Code Online (Sandbox Code Playgroud)

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

您可以访问aps词典的内容 - 尽管在大多数情况下您不需要使用以下键:

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

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