当推送通知到达时,用户直接点击该应用,推送通知仍保留在通知中心。如何从通知中心获取消息?我希望得到它并将其保存在本地,以便用户以后可以查看它们。
如果我在推送通知到达时点击通知中心的提醒,我可以保存推送通知。或者我可以在应用程序运行时保存推送通知。
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];
}
答案 0 :(得分:2)
您可以在didFinishLaunchingWithOptions
if ([[launchOptions allKeys] containsObject:UIApplicationLaunchOptionsRemoteNotificationKey]) {
id userInfo=[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
}
此方法在应用程序关闭时调用并单击通知,您只能获得此通知信息
答案 1 :(得分:1)
您的推理存在缺陷 - 推送通知意味着暂时性,它们可能与事件(例如收到的电子邮件)相关联,但它们本身并不是事件。在电子邮件示例中,所有推送应该是告诉电子邮件应用程序有新电子邮件,并且可能包含一些内容,这些内容将提示电子邮件内容,但电子邮件的实际内容不是作业要传递的通知 - 需要单独获取。 APNS是一个向远程客户端发送事件的系统,它不是内容系统本身。
像Facebook或whatsapp这样的系统处理这个问题的方式是他们有自己的消息系统,他们使用APNS通知应用程序收件箱中有新消息,然后应用程序将为用户提取内容从服务器拉出来。
如果您想构建这样的系统,那么您仍然可以使用APNS,但APNS应该告知您的客户有可用于获取的新内容,并且您将需要一个管理云收件箱的服务器。