环信IM集成教程——Web端UIKit快速集成与消息发送

写在前面:

千呼万唤始出来,环信Web端终于出UIKit了!🎉🎉🎉

文档地址:https://doc.easemob.com/uikit/chatuikit/web/chatuikit_overview.html

环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 React UI 组件库。该组件库提供了聊天相关的组件,包括会话列表、聊天界面、联系人列表和群组设置等组件,组件内部集成了 IM SDK,可以帮助开发者不考虑内部实现和数据管理就能根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。现在就让我们一起探索如何集成吧!本文介绍如何快速实现在单聊会话中发送消息


准备工作:

  1. React 环境:需要 React 16.8.0 或以上版本;React DOM 16.8.0 或以上版本。

  2. 即时通讯 IM 项目:已在环信即时通讯云控制台创建了有效的环信即时通讯 IM 开发者账号,并获取了 App Key。

  3. 环信用户:在环信控制台创建 IM 用户,并获取用户 ID 和密码或 token。
    在这里插入图片描述

  4. 好友关系:双方需要先 添加好友 才可以聊天
    在这里插入图片描述
    在这里插入图片描述


集成UIKit:

准备工作完成就开始集成!在此先奉上环信Web端UIKit源码

第一步:创建一个UIKit项目

# 安装 CLI 工具。
npm install create-react-app
# 构建一个 my-app 的项目。
npx create-react-app my-app
cd my-app

第二步:安装 easemob-chat-uikit

cd my-app
  • 使用 npm 安装 easemob-chat-uikit 包
npm install easemob-chat-uikit --save
  • 使用 yarn 安装 easemob-chat-uikit 包
yarn add easemob-chat-uikit

第三步:引入uikit组件

在你的 React 项目中,引入 UIKit 提供的组件和样式:

// 导入组件
import {
  UIKitProvider,
  Chat,
  ConversationList,
  // ...
} from "easemob-chat-uikit";

// 导入样式
import "easemob-chat-uikit/style.css";

第四步:初始化配置

easemob-chat-uikit 提供 UIKitProvider 组件管理数据。UIKitProvider 不渲染任何 UI, 只用于为其他组件提供全局的 context,自动监听 SDK 事件, 在组件树中向下传递数据来驱动组件更新。单群聊 UIKit 中其他组件必须用 UIKitProvider 包裹。

import "./App.css";
import { UIKitProvider} from "easemob-chat-uikit";
import "easemob-chat-uikit/style.css";
function App() {
  return (
    <div>
      <UIKitProvider
        initConfig={{
          appKey: "your app key", // 你的 app key
          userId: "userId", // 用户 ID
          password: "password", // 如果使用密码登录,传入密码。
          translationTargetLanguage: "zh-Hans", // 翻译功能的目标语言
          useUserInfo: true, // 是否使用用户属性功能展示头像昵称(UIKit 内部会获取用户属性,需要用户自己设置)
        }}
        local={{
          fallbackLng: "zh",
          lng: "zh",
          resources: {
            zh: {
              translation: {
                hello: "欢迎使用",
                conversationTitle: "会话列表",
                deleteCvs: "删除会话",
               //...
              },
            },
          },
        }}
      >
      </UIKitProvider>
    </div>
  );
}

export default App;


第五步:引入组件

根据自己的项目引入所需组件,组件文档,本文只介绍如何快速实现在单聊会话中发送消息,为了方便快速体验,一定要确保准备工作的第四条双方已经互为好友

import "./App.css";
import { UIKitProvider} from "easemob-chat-uikit";
import "easemob-chat-uikit/style.css";
function App() {
  return (
    <div>
      <UIKitProvider
        initConfig={{
          appKey: "your app key", // 你的 app key
          userId: "userId", // 用户 ID
          password: "password", // 如果使用密码登录,传入密码。
          translationTargetLanguage: "zh-Hans", // 翻译功能的目标语言
          useUserInfo: true, // 是否使用用户属性功能展示头像昵称(UIKit 内部会获取用户属性,需要用户自己设置)
        }}
        local={{
          fallbackLng: "zh",
          lng: "zh",
          resources: {
            zh: {
              translation: {
                hello: "欢迎使用",
                conversationTitle: "会话列表",
                deleteCvs: "删除会话",
               //...
              },
            },
          },
        }}
      >
       <div style={{ display: "flex" }}>
          <div style={{ width: "40%", height: "100%" }}>
            <ContactList
              onItemClick={(data) => {
                rootStore.conversationStore.addConversation({
                  chatType: "singleChat",
                  conversationId: data.id,
                  lastMessage: {},
                  unreadCount: "",
                });
              }}
            />
          </div>//联系人组件,点击某个好友通过‘rootStore.conversationStore.addConversation’创建会话
          <div style={{ width: "30%", height: "100%" }}>
            <ConversationList />//会话列表组件
          </div>
          <div style={{ width: "30%", height: "100%" }}>
            <Chat />//聊天消息组件
          </div>
        </div>
      </UIKitProvider>
    </div>
  );
}

export default App;

第六步:运行并测试

1、运行项目

npm run start

2、点击好友并发送一条消息
在这里插入图片描述


总结:

通过以上步骤,你已经成功集成了环信单聊 UIKit 并实现了基本的即时通讯功能,接下来继续根据 UIKit 提供的组件和 API 文档进行进一步开发吧~

相关文档:

  • 注册环信即时通讯IM:https://console.easemob.com/user/register

  • 环信UIKit集成文档:https://doc.easemob.com/uikit/chatuikit/web/chatuikit_overview.html

  • IMGeek社区支持:https://www.imgeek.net/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/512315.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯每日不知道多少题之昂贵的聘礼

制作不易望点赞收藏加关注~~~&#xff0c;以便不时之需 题目连接&#xff1a;903. 昂贵的聘礼 - AcWing题库 解题思路&#xff1a;虚拟一个物品0&#xff0c;然后反向建边&#xff0c;边权为物品0到物品i所花费的价格&#xff0c;以及物品i换物品j所省下的钱&#xff0c;然后…

【Spring】SpringBoot整合ShardingSphere并实现多线程分批插入10000条数据(进行分库分表操作)。

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 一、ShardingSphere简介 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈&#xff0c;它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar&#xff08;计划中&#xff09;这3款相互独立的产品组成…

强化学习笔记系列入门【0】

引言: 最近在学习西湖大学赵世钰老师的强化学习课程,一直觉得学习一定是一个不仅有输入还需要及时给出自己输出的一个过程,但在中国的大学或者研究生课堂,这一部分是相当缺失的,氛围经常性的很差。其实,课堂,我觉得就很有必要去做一些翻转课堂之类的东西,去打破现在这种…

【算法刷题day14】Leetcode:144.二叉树的前序遍历、94.二叉树的中序遍历、145.二叉树的后序遍历

文章目录 二叉树递归遍历解题思路代码总结 二叉树的迭代遍历解题思路代码总结 二叉树的统一迭代法解题思路代码总结 草稿图网站 java的Deque 二叉树递归遍历 题目&#xff1a; 144.二叉树的前序遍历 94.二叉树的中序遍历 145.二叉树的后序遍历 解析&#xff1a;代码随想录解析…

黄金票据复现

一、黄金票据攻击介绍 黄金票据攻击是网络安全领域中一种重要的渗透攻击手段。它利用Kerberos身份认证协议中的漏洞&#xff0c;允许攻击者伪造域控krbtgt用户的TGT&#xff08;Ticket-Granting Ticket&#xff09;。一旦攻击者成功伪造了TGT&#xff0c;他们就可以访问网络中…

千山至臻蜜密40°C的蜂蜜质量怎么样?

千山至臻蜜密40℃是经中国蜂产品协会认证的全国五星级蜂蜜品牌&#xff0c;中国蜂产品协会是全国最高最权威的认证机构&#xff0c;产品质量是毋庸置疑的。 千山至臻中蜂百花蜜对产品质量的管控可以用非常严苛来形容。 一是蜂场选择在方圆五公里的无人区&#xff08;中蜂的采…

hadoop 高可用(HA)、HDFS HA、Yarn HA

目录 hadoop 高可用(HA) HDFS高可用 HDFS高可用架构 QJM 主备切换&#xff1a; Yarn高可用 hadoop 高可用(HA) HDFS高可用 HDFS高可用架构 QJM 主备切换&#xff1a; Yarn高可用

MySQL进阶-----SQL提示与覆盖索引

目录 前言 一、SQL提示 1.数据准备 2. SQL的自我选择 3.SQL提示 二、覆盖索引 前言 MySQL进阶篇的索引部分基本上要结束了&#xff0c;这里就剩下SQL提示、覆盖索引、前缀索引以及单例联合索引的内容。那本期的话我们就先讲解SQL提示和覆盖索引先&#xff0c;剩下的内容就…

HTML——6.字符实体 和 URL

一、字符实体 当在 HTML 中编写内容时&#xff0c;有时需要使用特殊字符&#xff0c;例如小于号&#xff08;<&#xff09;、大于号&#xff08;>&#xff09;、引号&#xff08;"&#xff09;、和符号&#xff08;&&#xff09;等。但是这些字符有可能与 HTML…

AI智能校色解决方案,专业级画质提升

由于拍摄环境、设备性能以及编辑经验等多种因素的影响&#xff0c;视频画质往往难以达到理想状态。这时&#xff0c;一款高效、智能的校色解决方案就显得尤为重要。美摄科技凭借深厚的图像处理技术和AI算法研发实力&#xff0c;推出了全新的AI智能校色解决方案&#xff0c;助力…

从0到1构建uniapp应用-创建标签页Tabs

背景 uniapp框架可以快速开发微信小程序&#xff0c;并且得到越来越多的使用。 此系列我们将从0到1带大家一步步搭建uniapp开发脚手架。 帮助大家快速上手微信小程序的开发。 需求说明 一般微信小程序的底部都有4个或5个标签页&#xff0c;给用户以导航的操作。 此文将创建两…

特征融合篇 | YOLOv8改进之将Neck网络更换为GFPN(附2种改进方法)

前言:Hello大家好,我是小哥谈。GFPN(Global Feature Pyramid Network)是一种用于目标检测的神经网络架构,它是在Faster R-CNN的基础上进行改进的,旨在提高目标检测的性能和效果。其核心思想是引入全局特征金字塔,通过多尺度的特征融合来提取更丰富的语义信息。具体来说,…

Golang | Leetcode Golang题解之第6题Z字形变换

题目&#xff1a; 题解&#xff1a; func convert(s string, numRows int) string {n, r : len(s), numRowsif r 1 || r > n {return s}t : r*2 - 2ans : make([]byte, 0, n)for i : 0; i < r; i { // 枚举矩阵的行for j : 0; ji < n; j t { // 枚举每个周期的起始…

QT网络调试助手

QT网络调试助手 1.开发流程 2.QTtcp服务器   1.1 服务端数据读取   1.2 服务端发送数据-所有客户端   1.3 服务端自动刷新ip地址   1.4 服务端检测客户端断开状态   1.5 服务端发送数据-指定特定客户端发送数据   1.6 服务端停止监听和断开 3.QTtcp客户端 1…

深挖苹果Find My技术,伦茨科技ST17H6x芯片赋予产品功能

苹果发布AirTag发布以来&#xff0c;大家都更加注重物品的防丢&#xff0c;苹果的 Find My 就可以查找 iPhone、Mac、AirPods、Apple Watch&#xff0c;如今的Find My已经不单单可以查找苹果的设备&#xff0c;随着第三方设备的加入&#xff0c;将丰富Find My Network的版图。产…

15 个最佳遥感软件

无论您是专业地理学家、地球科学专业的学生&#xff0c;还是只是一个好奇的爱好者&#xff0c;都有各种各样的遥感软件可以帮助您完成工作。从对详细航空图像进行分类到创建复杂的 3D 模型&#xff0c;这 15 个遥感软件包都是最好的。让我们逐一介绍给您: 1.ERDAS Imagine ERD…

遵循苹果商店政策:确保Flutter应用在上架过程中合规操作

引言 Flutter是一款由Google推出的跨平台移动应用开发框架&#xff0c;其强大的性能和流畅的用户体验使其备受开发者青睐。然而&#xff0c;开发一款应用只是第一步&#xff0c;将其成功上架到苹果商店才是实现商业目标的关键一步。本文将详细介绍如何使用Flutter将应用程序上…

数据治理10大坑

✅作者简介&#xff1a;《数据运营&#xff1a;数据分析模型撬动新零售实战》作者、《数据实践之美》作者、数据科技公司创始人、多次参加国家级大数据行业标准研讨及制定、高端企培合作讲师。 &#x1f338;公众号&#xff1a;风姑娘的数字视角&#xff0c;免费分享数据应用相…

使用ARCore深度API实现点云采集

一、深度API 本小节内容摘自ARCore官方文档。 ARCore 深度API Depth API 可助力实现对象遮挡、提升沉浸感和新颖的互动体验&#xff0c;从而增强 AR 体验的真实感。 在下图中&#xff0c;右侧画面是采用深度API进行遮挡后的效果&#xff0c;与左侧图相比更加真实。 深度值 给…

Vue项目引入字体文件无效

这是原来的&#xff0c;没有生效 font-face {font-family: BebasNeue;src: url(./font/BebasNeue.otf);font-weight: normal;font-style: normal; }这是修改后的&#xff08;多了个空格&#xff09; font-face {font-family: Bebas Neue;src: url(./font/BebasNeue.otf);font-…