浏览 SDKs · iOS
平台
SDKsiOS

获取消息总未读数

使用 iOS SDK 获取并持续维护账号总未读数。

复制

获取当前登录账号所有会话的未读消息总数。该查询避免了在客户端遍历会话分页列表手动累加未读数:

[[OIMManager manager] getTotalUnreadMsgCountWithOnSuccess:^(NSInteger count) {
    [badgeStore setTotalUnread:count];
} onFailure:^(NSInteger code, NSString *message) {
    NSLog(@"getTotalUnreadMsgCount failed: %ld %@", (long)code, message);
}];

返回结果

成功回调 onSuccess 返回当前账号的所有未读消息总数 NSInteger。

该查询接口仅获取当前时刻的未读数快照,不触发任何 delegate 回调。

监听未读数变更

当收到新消息或执行会话已读标记导致未读总数变化时,SDK 会通过 onTotalUnreadMessageCountChanged: 回调通知最新未读总数:

@interface TotalUnreadSync : NSObject <OIMConversationListener>
@end

@implementation TotalUnreadSync
- (void)onTotalUnreadMessageCountChanged:(NSInteger)count {
    // 实时更新全局未读数与应用角标
    [badgeStore setTotalUnread:count];
}
@end

TotalUnreadSync *sync = [TotalUnreadSync new];
[[OIMManager callbacker] addConversationListener:sync];

// 账号注销或控制器销毁时:
[[OIMManager callbacker] removeConversationListener:sync];

需要把该未读数同步到系统的应用桌面角标时,请参见设置应用角标数量。