名片消息
用户可以通过 IMKit 名片插件发送个人名片。消息将出现在会话页面的消息列表组件中。插件默认发送的消息中包含名片消息内容对象 ContactMessage
(类型标识:RC:CardMsg
)。
提示
IMKit 默认会话页面未启用名片消息功能。如需要使用该功能,可集成 IMKit 名片插件,并提供需 要展示和发送的数据。
用法
IMKit 的名片插件仅支持通过源码导入。
-
下载融云开源仓库(GitHub · Gitee),将
contactcard
目录拷贝到您应用工程中。注意插件版本需要与当前 SDK 版本保持一致。 -
在工程根目录下的
settings.gradle
中增加配置。include ':contactcard'
-
在应用的
build.gradle
中添加依赖。implementation project(path: ':contactcard')
-
在进入会话页之前,实现名片信息提供者,以及会话页面点击名片消息时回调方法。
//名片信息提供者
IContactCardInfoProvider contactCardInfoProvider = new IContactCardInfoProvider() {
@Override
public void getContactAllInfoProvider(IContactCardInfoCallback contactInfoCallback) {
//获取所有名片列表,并通过 contactInfoCallback 回调给名片模块
imInfoProvider.getAllContactUserInfo(contactInfoCallback); //伪代码,应用层实现。
}
@Override
public void getContactAppointedInfoProvider(String userId, String name, String portrait, IContactCardInfoCallback contactInfoCallback) {
//获取单一用户的名片信息
imInfoProvider.getContactUserInfo(userId, contactInfoCallback); //伪代码,应用层实现。
}
};
IContactCardClickListener contactCardClickListener = new IContactCardClickListener() {
//在会话页面点击名片消息时,回调此方法,应用层可以在此回调里实现跳转逻辑。
@Override
public void onContactCardClick(View view, ContactMessage content) {
//此处示例点击名片进入到个人详细界面
Context activityContext = view.getContext();
Intent intent = new Intent(activityContext, UserDetailActivity.class);
intent.putExtra(IntentExtra.STR_TARGET_ID, content.getId());
activityContext.startActivity(intent);
}
};