【问题标题】:All notifications disappearing after opening one of them打开其中一个后所有通知都消失了
【发布时间】:2015-07-25 19:16:40
【问题描述】:

我有一个向我发送推送通知的服务器,假设我的手机上有 5 个通知。如果我打开其中一个,所有其他通知都会消失。我只想让被点击的那个消失。

这是我处理接收通知的方式:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {

    if ( application.applicationState == UIApplicationState.Inactive || application.applicationState == UIApplicationState.Background  )
    {
        // navigating user to a view controller
    }
    application.applicationIconBadgeNumber = 0
}

【问题讨论】:

  • 从 iOS SDK 5.0 开始无法删除特定通知。当您点击应用通知时,通知中心不会显示它们。
  • 是因为application.applicationIconBadgeNumber = 0,去掉那个代码。也不确定只有点击消失的那个。
  • @muku by application.applicationIconBadgeNumber = 0 只是更改应用程序的徽章编号而不是通知。
  • @ParthDabhi 如果您设置此代码 application.applicationIconBadgeNumber = 0 那么您的徽章编号和通知中心的通知都将被清除
  • @muku 通知不清楚,您只能设置应用程序徽章。您可以在没有任何通知的情况下更改徽章编号,请参见此处 [stackoverflow.com/questions/28042898/…

标签: ios swift push-notification


【解决方案1】:

通过将applicationIconBadgeNumber 设置为0,您还可以从通知中心删除所有通知。

这也在这里讨论过: iOS application: how to clear notifications?

此外,无法以编程方式删除单个通知,但从 iOS8 开始,当用户点击单个通知时,操作系统会为您处理此问题。这也在这里讨论过: Remove single remote notification from Notification Center

【讨论】:

【解决方案2】:

如果您在应用中使用OneSignal SDK,并且出现打开通知消失的问题,则必须将密钥OneSignal_disable_badge_clearing添加到Xcode中的Info.plist文件中,作为布尔值类型设置为YES

更多信息在这里https://documentation.onesignal.com/docs/badges

【讨论】:

    【解决方案3】:

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

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

    有关更多信息(例如在哪里调用此函数),您可能想在此处查看我的原始答案:https://stackoverflow.com/a/54296486/8157190

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多