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

时间:2017-07-18 18:06:56

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

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

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

我希望能够离开/阻止通知从通知中心消失,以便让用户可以选择从通知中心打开通知。不知何故喜欢YouTube通知。我甚至在Twitch app通知中看到了这种行为。

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:0)

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

简而言之,问题是由将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方法中调用此函数,以确保它在适当的时候更新。

答案 1 :(得分:0)

如果您的应用收到 OneSignal 的推送通知,因此您已经集成了 OneSignal SDK ,则必须将密钥OneSignal_disable_badge_clearing添加到{{1} },作为设置为{{1}的布尔类型,以防止在打开一个通知后删除所有通知。

此处更多信息https://documentation.onesignal.com/docs/badges