【问题标题】:reading latest push notification data when the app is brought back to foreground (not by tapping notification)当应用程序回到前台时读取最新的推送通知数据(不是通过点击通知)
【发布时间】:2018-05-10 01:22:26
【问题描述】:

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

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 个通知,并将应用程序置于前台(不是通过点击通知),那么我将如何阅读发送的最新通知?

【问题讨论】:

  • 简短的回答是你不知道。当您的应用程序返回前台时,它应该做的第一件事是检查您的服务器以获取更新的数据。通知并非旨在可靠地向您的应用传递数据。

标签: ios iphone swift push-notification


【解决方案1】:

您可以拨打func getDeliveredNotifications(completionHandler: @escaping ([UNNotification]) -> Void)获取在通知中心仍可见的通知

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-18
    • 2023-03-11
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    相关资源
    最近更新 更多