自定义角标

Android

支持厂商

华为。

配置方法

控制台配置华为角标参数为应用的启动类,例如 “com.tencent.qcloud.tim.demo.SplashActivity”。组件会自动解析和更新角标;反之不会更新角标。




iOS

默认情况下,当 App 进入后台后,IMSDK 会将当前 IM 未读消息总数设置为角标。如果 App 接入了离线推送,当接收到新的离线推送时,App 角标会在基准角标(默认是 IM 未读消息总数,如果自定义了角标,则以自定义角标为准)的基础上加 1 逐条递增。

配置方法

如果想自定义角标,可按照如下步骤设置:
2. App 实现 - (uint32_t)onSetAPPUnreadCount 接口,并在内部返回需要自定义的角标。
// 1. 设置监听
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 监听推送
[V2TIMManager.sharedInstance setAPNSListener:self];
// 监听会话的未读数
[[V2TIMManager sharedInstance] setConversationListener:self];
return YES;
}

// 2. 未读数发生变化后保存未读数
- (void)onTotalUnreadMessageCountChanged:(UInt64)totalUnreadCount {
self.unreadNumber = totalUnreadCount;
}

// 3. App 推到后台后上报自定义未读数
/** 程序进后台后,自定义 App 的未读数,如果不处理,App 未读数默认为所有会话未读数之和
* <pre>
*
* - (uint32_t)onSetAPPUnreadCount {
* return 100; // 自定义未读数
* }
*
* </pre>
*/
- (uint32_t)onSetAPPUnreadCount {
// 1. 获取自定义的角标
uint32_t customBadgeNumber = ...
// 2. 加上 IM 的消息未读数
customBadgeNumber += self.unreadNumber;
// 3. 通过 IMSDK 上报给 IM 服务器
return customBadgeNumber;
}

Flutter

请参照下方 iOS 和 Android 章节进行配置即可。调用的方法均在 Flutter 版本的 IM SDK 中有同名方法。