push-notification - CloudKit 不会将我的徽章计数重置为 0

标签 push-notification apple-push-notifications ios8 cloudkit cksubscription

我已经尝试了很多方法,但似乎无法从来自 cloudKit 的通知中重置徽章计数。
有没有其他人遇到过这个问题。这是我尝试过的:

1)在本地设置徽章计数为0

  application.applicationIconBadgeNumber = 0; (temporarily removes the badge count).

没运气...

2) 调用服务器清除徽章计数
 CKModifyBadgeOperation *oper = [[CKModifyBadgeOperation alloc] initWithBadgeValue:0];
  [oper start];

没运气...

3) 拉入所有通知更改并将它们标记为已读
NSMutableArray *array = [NSMutableArray array];
CKFetchNotificationChangesOperation *operation = [[CKFetchNotificationChangesOperation alloc] initWithPreviousServerChangeToken:nil];
operation.notificationChangedBlock = ^(CKNotification *notification) {
    [array addObject:notification.notificationID];
};
operation.completionBlock = ^{
        CKMarkNotificationsReadOperation *op = [[CKMarkNotificationsReadOperation alloc] initWithNotificationIDsToMarkRead:array];
        [op start];
};
[operation start];

再一次没有运气......

任何建议将不胜感激!
谢谢,
克里斯

最佳答案

你需要做一个 CKModifyBadgeOperation 处理您的通知。

这是我在将所有通知标记为已读后调用的 Swift 函数。
我将操作添加到 defaultContainer 而不是仅仅启动它 - 我想知道这有什么不同。

func resetBadgeCounter() {
    let badgeResetOperation = CKModifyBadgeOperation(badgeValue: 0)
    badgeResetOperation.modifyBadgeCompletionBlock = { (error) -> Void in
        if error != nil {
            println("Error resetting badge: \(error)")
        }
        else {
            UIApplication.sharedApplication().applicationIconBadgeNumber = 0
        }
    }
    CKContainer.defaultContainer().addOperation(badgeResetOperation)
}

关于push-notification - CloudKit 不会将我的徽章计数重置为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25120070/

相关文章:

ios - 方法未被调用 : - (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken

php - 如何检索推送通知 php 的 ck.pem 文件

ios - 在 Swift 中获取 PHAsset 的位置

ios8 - HealthKit:不允许读取 HKCorrelationType

objective-c - ios 8 (UITableViewCell) : Constraints ambiguously suggest a height of zero for a tableview cell's content view

ios - 更改AppID之后是否需要编辑配置

push-notification - FCM Firebase 推送消息发送者 ID 不匹配

android - 用于 react native 应用程序图标角标(Badge)的库

windows-phone-8 - 有一种方法可以在 Windows Phone 的推送通知中发送自定义数据吗?

ios - iOS 9 中的 iPhone 通知中心未添加远程通知