ios - 当打开另一个通知时,如何防止通知从通知中心消失? iOS

标签 ios swift push-notification notifications apple-push-notifications

我正在开发一个接收推送通知的应用程序。此推送通知,每个都包含有值(value)的信息,当用户从中打开应用程序时会显示这些信息。

我的问题是,如果用户收到多个通知,如果用户点击它并打开应用程序,所有其他通知都会从通知中心消失,我会丢失所有其他重要信息。

我希望能够离开/防止通知从通知中心消失,以便让用户可以选择继续从通知中心打开它们。有点像 YouTube 通知。我什至在 Twitch 应用程序通知中看到了这种行为。

有什么想法吗?谢谢。

最佳答案

我知道这是一个很老的问题,但由于没有答案,我会告诉你我是如何解决这个问题的。

简而言之,问题是将UIApplication.shared.applicationIconBadgeNumber设置为0引起的;它正在将所有通知从通知中心删除。

解决方案是将applicationIconBadgeNumber设置为用户在通知中心的实际通知数量。我为此做了一个函数:

func updateIconBadge() {
    UNUserNotificationCenter.current().getDeliveredNotifications { notifications in
        DispatchQueue.main.async {
            UIApplication.shared.applicationIconBadgeNumber = notifications.count
        }
    }
}

现在你可以在方法application(_application:, didFinishLaunchingWithOptions:), applicationWillEnterForeground(_application:), applicationDidBecomeActive(_application:)AppDelegate.swift 中以确保它会在应该更新的时候更新。

关于ios - 当打开另一个通知时,如何防止通知从通知中心消失? iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45174124/

相关文章:

iphone - SSL证书错误: certificate_unknown

ios - 为什么在没有 @autoreleasepool 的 for 循环的每个循环中 NSString autorelease

swift 3 : convert a null-terminated UnsafePointer<UInt8> to a string

ios - 如何更改 UILabel 中的字母间距?

ios - 如何将从 UIImagePNGRepresentation() 接收到的数据转换为字符串,反之亦然?

ios - UITextView 类,从 Objective-C 到 Swift 的 intrinsicContentSize 问题

ios - 如果用户禁用了应用程序的推送,是否可以进行静默远程通知?

asp.net - Windows 推送通知的 AccessToken 返回错误请求 400

ios - 在 Titanium appcelerator 中显示来自 ios 模块的简单 View

ios - 无法分配 String 类型的值!为 String 类型的值