首页 文章

如何更改徽章数量?

提问于
浏览
0

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

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

UIApplication.shared.applicationIconBadgeNumber = 0

但是当你运行应用程序时,徽章就会消失,接收到下一个推送通知,这个数字会再次上升 .

2 回答

  • 0

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

    当您的应用程序从后台恢复时,仅在实际启动时才会调用 didFinishLaunchingWithOptions . 我能想到的徽章最常见的用途是当您收到通知时,并且您希望在用户看到通知时将其归零 . 那就是你必须设置 applicationIconBadgeNumber = 0 的地方

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

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

  • 0

    用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)
    }
    

    所有的作品!!!!很高兴!!!!

相关问题