ios - 当应用程序返回前台时读取最新的推送通知数据(不是通过点击通知)

标签 ios iphone swift push-notification

实现推送通知时 用户可以点击通知将最小化的应用程序带到前台,这对我来说很好用,我通常像这样读取通知数据......

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
{
    let userInfo = notification.request.content.userInfo
    parsePayload(arg: (userInfo["PN_Body"] as? NSString)!)
    completionHandler([.alert, .badge, .sound])
}

我的问题是关于另一种情况

如果用户在应用程序最小化时收到 5 条通知,并将应用程序置于前台(不是通过点击通知),那么我将如何读取最新发送的通知?

最佳答案

您可以通过调用 func getDeliveredNotifications(completionHandler: @escaping ([UNNotification]) -> Void) 获取通知中心仍然可见的通知

“notifications:一组 UNNotification 对象,代表您的应用程序的本地和远程通知,这些通知已发送并且在通知中心仍然可见。如果您的应用程序的通知在通知中心都不可见,则该数组为空。”

但是,如果通知过时并且已经在通知中心放置了一段时间,这可能无法提供准确的信息。您可以让它变得非常困惑,并开始检查通知的交付日期,并将其与上次应用进入后台/终止的时间进行比较。

正如@paulw11 所说,您应该检查服务器并以这种方式刷新信息。

关于ios - 当应用程序返回前台时读取最新的推送通知数据(不是通过点击通知),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47500184/

相关文章:

使用 Firebase 的 iOS 推送通知

ios - 从不同的文本字段在 [RETURN] 按键上执行不同的功能

iOS - 内容 View 非常大的 UIScrollView,如何减少内存使用?

iPhone - 如何强制 #define 返回 double ?

iphone - 更改 iPhone 上选项卡栏的颜色

ios - 关闭键盘后,带有选定文本的 UITextView 不响应触摸

iphone - 使用 MKOverlay 的 pointCounts 错误

iOS CGContextAddArc 和不同的屏幕分辨率

ios - Sprite Kit 中的简单碰撞

swift - 关系属性的核心数据获取请求