当用户直接点击应用程序时如何获取推送通知消息?

时间:2014-05-05 05:28:43

标签: ios push-notification

当推送通知到达时,用户直接点击该应用,推送通知仍保留在通知中心。如何从通知中心获取消息?我希望得到它并将其保存在本地,以便用户以后可以查看它们。

如果我在推送通知到达时点击通知中心的提醒,我可以保存推送通知。或者我可以在应用程序运行时保存推送通知。

AppDelegate.m中的

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    [PFPush handlePush:userInfo];

    //save the alert
    [FunctionNSObject savePushNotification:userInfo];
}

在MyTableViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];


    //load push notification from file
    sortedMessages = [FunctionNSObject loadPushNotification];
}

2 个答案:

答案 0 :(得分:2)

您可以在didFinishLaunchingWithOptions

中添加以下代码
if ([[launchOptions allKeys] containsObject:UIApplicationLaunchOptionsRemoteNotificationKey]) {

        id userInfo=[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

    }

此方法在应用程序关闭时调用并单击通知,您只能获得此通知信息

答案 1 :(得分:1)

您的推理存在缺陷 - 推送通知意味着暂时性,它们可能与事件(例如收到的电子邮件)相关联,但它们本身并不是事件。在电子邮件示例中,所有推送应该是告诉电子邮件应用程序有新电子邮件,并且可能包含一些内容,这些内容将提示电子邮件内容,但电子邮件的实际内容不是作业要传递的通知 - 需要单独获取。 APNS是一个向远程客户端发送事件的系统,它不是内容系统本身。

像Facebook或whatsapp这样的系统处理这个问题的方式是他们有自己的消息系统,他们使用APNS通知应用程序收件箱中有新消息,然后应用程序将为用户提取内容从服务器拉出来。

如果您想构建这样的系统,那么您仍然可以使用APNS,但APNS应该告知您的客户有可用于获取的新内容,并且您将需要一个管理云收件箱的服务器。