自定义角标

最近更新时间:2024-09-19 17:07:31

我的收藏
Android
iOS
Flutter
uni-app

支持厂商

华为。

配置方法

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



默认情况下,当 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;
}
请参见 Android 和 iOS 进行配置即可。调用的方法均在 Flutter 版本的 IM SDK 中有同名方法。

支持厂商

华为。

配置方法

步骤1. 控制台配置华为角标参数为应用的启动类。

说明:
uniapp 应用的启动类为 io.dcloud.PandoraEntry




步骤2. 监听 Chat SDK 未读总数变化自行设置角标数量。

1. 通过 TOTAL_UNREAD_MESSAGE_COUNT_UPDATED 监听 Chat SDK 会话未读总数更新。
2. 通过 plus.runtime.setBadgeNumber 设置角标数量。
let onTotalUnreadMessageCountUpdated = function(event) {
const unreadCount = event.data; // 当前会话的未读总数
plus.runtime.setBadgeNumber(unreadCount); // 设置角标数量
};
chat.on(TencentCloudChat.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED, onTotalUnreadMessageCountUpdated);