我正在开发一个接收推送通知的应用程序.此推送通知,每个推送通知包含用户从中打开应用程序时显示的有价值信息.
我的问题是,如果用户收到多个通知,如果用户点击它并打开应用程序,则所有其他通知从通知中心消失,我丢失了所有其他重要信息.
我希望能够离开/阻止通知从通知中心消失,以便让用户可以选择从通知中心打开通知.不知何故喜欢YouTube通知.我甚至在Twitch app通知中看到了这种行为.
任何的想法?谢谢.
解决方法
我知道这是一个非常古老的问题,但由于它没有答案,我会告诉你我是如何解决这个问题的.
简而言之,问题是将UIApplication.shared.applicationIconBadgeNumber设置为0引起的;它会将所有通知从通知中心删除.
解决方案是将applicationIconBadgeNumber设置为用户在通知中心中的实际通知数.我为此做了一个函数:
func updateIconBadge() { UNUserNotificationCenter.current().getDeliveredNotifications { notifications in DispatchQueue.main.async { UIApplication.shared.applicationIconBadgeNumber = notifications.count } } }
现在,您可以在AppDelegate.swift中的方法应用程序(_application:,didFinishLaunchingWithOptions :),applicationWillEnterForeground(_application :),applicationDidBecomeActive(_application :)中调用此函数,以确保它将在应用时更新.