跳到主要内容

与 IM 业务集成

您可以将 CallPlus 集成到基于 IMLib SDK 的应用程序中,为用户提供使用通话和聊天服务的无缝体验。

在会话页面插入通话结束消息

应用程序可以通话结束时返回聊天视图,并在会话页面中展示通话结束的消息。

CallPlus SDK 可在通话结束时通过回调 onReceivedCallPlusSummaryMessage 返回一个 IM 消息对象,其中包含消息内容对象包含了通话信息。用户可以通过调用 IMLib SDK 的接口直接将该消息内容对象插入到会话中。

在 IM 中插入通话结束消息

重要

CallPlus SDK 暂仅支持在一对一通话(通话类型为 RCCallPlusType.SINGLE)结束时返回用于展示通话记录的消息内容。暂不支持支持多人通话。

通话正常、异常结束,或在未接听时挂断,CallPlus SDK 会触发 ICallPlusEventListeneronReceivedCallPlusSummaryMessage 回调方法,可在该回调方法获取到通话结束的消息内容对象。

如果被叫时用户不在线,CallPlus SDK 会在下次成功连接 IM 后立即获取离线时产生的。为了确保 CallPlus SDK 可在 IM 连接成功后立即获取到这些消息,请在 IM 连接之前调用 setCallPlusEventListener 注册监听器。

收到通话结束消息时,可以将 message 通过 insertMessage 方法插入到本地会话中,并自行刷新 UI。

TypeScript
  onReceivedCallPlusSummaryMessage(message: RCMessage) {

/// CustomSummaryMessage 属于 sdk 提供的自定义消息,包含通话记录所需信息
let summaryMsg = message.content as CustomSummaryMessage

console.log('收到 Call Plus summary message', JSON.stringify(summaryMsg))

IMEngine.getInstance().insertMessage(message).then((result) => {
if (result.code === EngineError.Success) {
console.log('插入消息成功');
} else {
console.log('插入消息失败', result.code);
}
});
}