如何更改徽章数量?

时间:2017-11-18 15:40:15

标签: ios swift apple-push-notifications cloudkit cksubscription

我正在使用CKSubscription发送推送通知,我发送它们并且设备正确接收所有内容,但我的徽章计数总是+1以前是什么?应用程序运行后如何将其设置为0?

我已将此代码添加到func应用程序didFinishLaunchingWithOptions

UIApplication.shared.applicationIconBadgeNumber = 0

但是当你运行应用程序时,徽章会消失,接收到下一个推送通知后,该号码会再次上升。

2 个答案:

答案 0 :(得分:1)

用CKModifyBadgeOperation解决它,将它放入applicationDidBecomeActive

let badgeOp = CKModifyBadgeOperation(badgeValue: 0)
badgeOp.modifyBadgeCompletionBlock = { (error) -> Void in 
if error != nil { print (“error with the badge”)
} 
else {
UIApplication.shared.applicationIconBadgeNumber = 0 }
}
CKContainer.default().add(badgeOp)
}

一切正常!!!!好开心!!!!

答案 1 :(得分:0)

听起来你并不是在正确的地方把它归零?

当您的应用从后台恢复时,只有在实际启动时,才会调用

didFinishLaunchingWithOptions。我能想到的徽章最常见的用途是当你收到通知时,你想在用户看到通知时将它们归零。因此,您需要设置applicationIconBadgeNumber = 0

例如,如果您的应用只是一个带有消息列表的视图,只是看到该列表足以告诉您用户已阅读该消息,您可以使用applicationWillEnterForeground代替。每当你从后面回来时都会调用它。

当应用程序位于前台时,您仍然需要将通知归零。

相关问题