8

我已经实施

application:didReceiveRemoteNotification:

在收到推送通知时将数据存储在我的应用程序中。

但是,当我的应用程序在后台并收到通知时,只有当我触摸出现在顶部的通知横幅时,才会存储数据:

在此处输入图像描述

相反,如果我触摸应用程序图标重新打开它,通知的内容不会被存储:

在此处输入图像描述

由于我仅在使用分发配置文件时才收到通知,因此我不确定是否application:didReceiveRemoteNotification:仅在我将通知横幅推到顶部时才调用。

我认为它总是在收到通知时调用,而不是在用户对设备进行操作之后调用。

更新。我不知道这是否有帮助,但为了让您知道,我还没有实现这些方法中的任何一个:

– applicationDidEnterBackground:
– applicationWillEnterForeground:
- applicationDidBecomeActive:
4

1 回答 1

1

我想我已经找到原因了。从文档:

如果点击操作按钮(在运行 iOS 的设备上),系统将启动应用程序并且应用程序调用其委托的 application:didFinishLaunchingWithOptions: 方法(如果已实现);它传入通知负载(用于远程通知)或本地通知对象(用于本地通知)。

如果在运行 iOS 的设备上点击应用程序图标,应用程序会调用相同的方法,但不会提供有关通知的信息。

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html

但是,我想知道即使通过触摸图标重新打开了应用程序,是否有办法加载有效负载。

于 2012-07-22T20:07:18.280 回答