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

Ped*_*rro 5 notifications push-notification apple-push-notifications ios swift

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

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

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

任何的想法?谢谢。

Ido*_*Ido 3

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

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

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

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

现在您可以在方法application(_application:, didFinishLaunchingWithOptions:)、 、中调用此函数applicationWillEnterForeground(_application:)applicationDidBecomeActive(_application:)AppDelegate.swift确保它会在应该更新时更新。