跳到主要内容

UIKit 配置指南

Global IM UIKit 全局配置旨在提供易于使用的功能配置,帮助您快速构建聊天应用程序。

配置说明

Global IM UIKit 全局配置按照以下模块进行划分。您可以在相应的文件中了解 Global IM UIKit 提供的所有全局配置。

类别描述API 文档配置入口
特性配置控制配置主题模式、语言类型、图片加载引擎、用户最大缓存、群组最大缓存、组成员缓存、权限拦截器等。FeatureConfigConfigCenter.getFeatureConfig()
会话列表页面配置控制设置支持的会话类型、会话列表条目Provider、进入会话是否删除通知消息等。ChatListConfigConfigCenter.getChatListConfig()
会话页面配置控制是否显示头像、昵称, 设置聊天气泡样式、撤回时间等。ChatConfigConfigCenter.getChatConfig()
用户信息配置设置当前用户信息、用户信息提供者、群组信息提供者、群组@信息提供者等。UserInfoConfigConfigCenter.getUserInfoConfig()
通知配置控制前台非会话页面接收到消息是否静默、通知的标题类型本地通知的分类(Category)、设置通知拦截器等。NotificationConfigConfigCenter.getNotificationConfig()
其他全局配置控制是否开启断网提示、消息已发已读状态等。ConfigCenterConfigCenter

修改 Global IM UIKit 配置

Global IM UIKit 提供了 ConfigCenter 类,作为修改 SDK 全局配置的入口。

// 设置语言(支持:英文、中文、跟随系统,默认:跟随系统,参考:详情可参考 FeatureConfig.LanguageType)
ConfigCenter.getFeatureConfig().setLanguage(FeatureConfig.LanguageType.ENGLISH);

// 设置主题类型(支持:浅色模式、深色模式、跟随系统,默认:跟随系统,参考:详情可参考 FeatureConfig.ThemeMode)
ConfigCenter.getFeatureConfig().setThemeMode(FeatureConfig.ThemeMode.THEME_LIGHT_MODE);

// 断网提示 (默认:开)
ConfigCenter.setShowConnectingStatus(false);

// 消息 已发送&已读 状态 (默认:开)
ConfigCenter.setSentReadStatus(false);

// 设置会话列表延时刷新时间(防止消息量过大导致卡顿)
ConfigCenter.getChatListConfig().setSupportedTypes(new Conversation.ConversationType[] { Conversation.ConversationType.PRIVATE,
Conversation.ConversationType.GROUP });

// 是否在私聊中显示自己的头像(默认关)
ConfigCenter.getChatConfig().setDisplayOwnAvatarInPrivateChat(true);


// 会话列表中每个条目的头像显示默认为圆形,可修改为矩形显示。
ConfigCenter.getFeatureConfig().setKitImageEngine(new GlideKitImageEngine() {
@Override
public void loadConversationListPortrait(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView, Conversation conversation) {
Glide.with(context).load(url)
.into(imageView);
}
});

// 会话页面中每条消息的头像显示默认为圆形,可修改为矩形显示。
ConfigCenter.getFeatureConfig().setKitImageEngine(new GlideKitImageEngine() {
@Override
public void loadConversationPortrait(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView, Message message) {
Glide.with(context).load(url)
.into(imageView);
}
});


// 设置前台处于非会话页面时,接收到消息后不通知。
ConfigCenter.getNotificationConfig().setForegroundOtherPageAction(ForegroundOtherPageAction.Silent);

// 设置当前用户信息
ConfigCenter.getUserInfoConfig().setCurrentUserInfo(new UserInfo("userId", "userName", Uri.parse("https:image")));

检查 Global IM UIKit 配置

Global IM UIKit 配置是实时应用的,修改后的配置将在下一次 UI 刷新或者操作时生效。建议在初始化 Global IM UIKit 后完成所有配置。