【问题标题】:how can I handle push notification when my app is not running当我的应用程序未运行时如何处理推送通知
【发布时间】:2011-06-14 12:26:43
【问题描述】:

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

【问题讨论】:

    标签: iphone apple-push-notifications ios-3.x


    【解决方案1】:

    一个简短的例子:

    - (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 的官方文档:

    您可以访问应用程序的内容 字典——虽然你不应该需要 在大多数情况下 - 使用以下 键:

    1. alert - 该值可以是警报消息的字符串或 字典有两个键:body 和 显示视图。前者的值为 警报消息,后者是 布尔值(假或真)。如果为假,则 未显示警报的查看按钮。这 默认是显示查看按钮 如果用户点击它,它会启动 应用程序。
    2. badge - 表示要下载的数据项数量的数字 来自提供者。这个号码是 显示在应用程序图标上。 没有徽章属性 表示当前任何数字 标记图标应该被移除。
    3. sound - 应用程序包中作为声音文件播放的声音文件的名称 警报声。如果“默认”是 指定,默认声音应该是 播放。

    字典也可能有 提供者定义的自定义数据 根据 JSON 模式。这 自定义数据的属性应该是 指定在与 aps 相同的级别 字典。但是,自定义 属性不应用于质量 数据传输,因为有一个 每个通知的严格大小限制 (256 字节)和交付不是 保证。

    【讨论】:

    • 当我收到通知时你能浏览一下 NSDictionary
    • 它的客户要求应用程序不应该打开并且它会调用。这可能吗?
    • 如果您的意思是用户取消了 APNs AlertView,那么您的应用将不会启动,也不会收到有关此类推送的通知。所以不,这是不可能的。
    • 我在收到通知时拨打电话,但打开启动应用程序后拨打电话,是否可以不启动?
    • 否,如果用户接受 APNs 警报,应用程序将被启动。这不取决于你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多