视频通话
  • 概述
  • 体验 App
  • 跑通示例源码
  • 实现流程
  • 进阶功能
  • API 文档
  • 常见错误码
  • 文档中心
  • 视频通话
  • 进阶功能
  • 实时消息互动
  • Android

Android

更新时间:2022-08-09 12:01

  • 本组件适合之前没有接入过 ZIM 的项目,实现低代码接入 ZIM 的聊天能力。
  • 对于已经接入过 ZIM 其他能力的项目,可以考虑移除控件代码中的 ZIMSDKManager 类,在 ChatService 中改为调用项目已有的 ZIM 接口封装类

功能简介

实时消息互动组件支持多人实时通讯,本文将介绍如何在项目中集成并使用实时消息互动组件。

/Pics/GoCall/call/GoCall_Chat.png

前提条件

在集成实时消息互动组件之前,请确保:

  • 已参考 跑通示例源码 获取 GoCall 完整源码;
  • 已在 ZEGO 控制台 创建项目,获取到了项目 appID 和 appSign;
  • 已在 ZEGO 控制台 自助开通即时通讯服务(详情请参考 项目管理 - 即时通讯),若无法开通服务,请联系 ZEGO 技术支持。

组件接入

1 引入组件

参考如下步骤,在项目中添加 libIMChat 组件:

  1. 解压源码压缩包,拷贝 libIMChat 文件夹至项目中。

  2. 在项目中引入 libIMChat 组件。

打开项目的 settings.gradle 文件,添加如下代码:

include ':libIMChat'
  1. 在项目中添加 libIMChat 组件的依赖项。打开项目的 app/build.gradle 文件,添加如下代码:
dependencies {
    implementation project(':libIMChat')
    ......
}

2 初始化语聊功能对象

ChatService chatService = new ChatService();

3 登录 ZIM service

// appID 和 appSign 的值请从控制台获取
// userID 和 userName 为开发者自定义的值,建议与 Express SDK 所用 userID 和 userName 保持一致
chatService.loginZIM(application, appID, appSign, userID, userName, callback);

4 加入到 IM 房间

// roomID 为开发者自定义的值
// roomName 为开发者自定义的值
chatService.enterZIMRoom(roomID, roomName, new IZIMCommonCallback() {
    @Override
    public void onZIMCallback(int errorCode) {
        // 业务自定义相关逻辑处理
    });
}

5 添加 IM 消息View

在业务视图需要的合适地方添加上IMChatView组件对象,例如可以在 xml 配置成:

<im.zego.libimchat.view.IMChatView
    android:id="@+id/im_chat_view"
    android:layout_width="300dp"
    android:layout_height="200dp"
    android:background="#00000000"
    />

逻辑代码如下:

// IM 的相关组件
private IMChatView imChatView;

imChatView =findViewById(R.id.im_chat_view);
// 在实际的业务操作中必须对 imChatView 对象初始化操作!!!!
imChatView.initMainIMView(this,chatService));

// setSendMessageCallback 是对信息发送回调处理
imChatView.setSendMessageCallback(getSupportFragmentManager(), new ISendMessageCallback() {
    @Override
    public void onSuccess () {

    }

    @Override
    // 消息发送失败
    public void onFailure () {
        // 开发者根据需求进行自定义处理。
    }
});

6 退出IM房间

chatService.logoutZIMRoom(new IZIMCommonCallback() {
    @Override
    public void onZIMCallback(int errorCode) {
            // 开发者可自定义逻辑处理
        }
});
本篇目录