1

我的应用程序在后台,并且通知警报确实显示正确,并且徽章编号增加了 1。如果用户点击警报,一切正常并didReceiveLocalNotification调用委托。

但是用户忽略了警报。一段时间后,当用户再次打开我的应用程序时,唯一调用的委托是didBecomeActive. UIAlertView根据上次忽略的警报,我该如何做某事(例如显示一个)?

4

3 回答 3

3

据我所知,如果通知被忽略,一旦再次打开应用程序就无法恢复。

您需要检查推送该通知的服务以了解是否有新内容

于 2013-10-01T14:57:35.103 回答
3

iOS 本身并没有为此提供任何方法。

但你可以简单地这样做:

  1. 在向 iOS 注册通知时 - 将所有通知数据写入文件。
  2. 在应用程序开始加载通知文件和所有过期的通知(NSDate < 现在) - 这些是被忽略的通知。
  3. 在执行 2. 之前,您需要检查是否有人来自通知并将其从您的文件中删除。

这是一种复制 iOS 通知管理系统,遗憾的是不允许获取已注册通知的列表。

将通知写入文件应该很容易:它已经实现了 NSCoding 协议。

于 2013-10-01T15:40:50.770 回答
0

不幸的是,没有直接的方法来实现它。

可能的解决方法 - 如果用户关闭/忽略您的推送通知,您的应用程序可以查看服务器上的消息并以适当的方式处理它。

于 2013-10-01T16:04:24.330 回答