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];需要把该未读数同步到系统的应用桌面角标时,请参见设置应用角标数量。
这个页面有帮助吗?