当前位置: 首页 > news >正文

【附源码】基于环信鸿蒙IM SDK实现一个聊天Demo

项目背景

本项目基于环信IM 鸿蒙SDK 打造的鸿蒙IM Demo,完全适配HarmonyOS NEXT系统,实现了发送消息,添加好友等基础功能。代码开源,功能简洁,如果您有类似开发需求可以参考。

源码地址:https://github.com/easemob/easemob-support/tree/dev/Harmony/Harmony_demo

运行本项目前,需登录环信console获取自己的APPKEY

效果演示

鸿蒙Demo

项目主要结构

└─entry ├─ libs // 本地包路径│  └─ chatsdk-1.2.1.har // 环信sdk└─ src└─ main└─ ets├─ connon //公共组件│  ├─ AudioRecorder // 录音类(用于发送语音消息)│  ├─ CommTitleBar // 导航条封装组件│  ├─ FriendRequest // 首选项存取(用于保存好友请求的数据)│  ├─ FsUtil // 视频生成缩略图类(用于发送视频消息需要传缩略图使用)│  ├─ KVStoreManager // kv数据库类(用户保存用户信息,注意是用户头像和昵称)│  ├─ PlayAudio // 播放音频文件(用于播放语音消息)│  └─ Utils // 工具类├─ model //model│  ├─ ConvListData //会话列表model│  └─ MessageListData //消息列表model├─ page //页面│  ├─ ChatPage //聊天页面 │  ├─ ContactPage //联系人页面│  ├─ ConversationPage //会话页面│  ├─ FriendRequestPage //好友请求页面│  ├─ GroupPage //群组页面│  ├─ Index //登录页面页面│  ├─ MePage //个人中心页面│  └─ VideoPage //视频播放页面└─ view // view 

运行示例项

  • 1.在入口文件进行初始化,填写自己的appkey
    在这里插入图片描述

  • 2.登录页面
    在这里插入图片描述

  • 3.会话页面
    在这里插入图片描述

  • 4.联系人页面
    在这里插入图片描述

  • 5.个人页面
    在这里插入图片描述

  • 6.聊天页面
    在这里插入图片描述

补充说明

  • 发送语音消息时,需要使用真机,模拟器测试下来录音效果有问题
  • 发送视频消息时,需要使用真机,模拟器测试根据视频文件获取第一帧图片会报错
  • 联系人页面,先从本地获取数据,如果本地没有数据,就从服务器获取

参考文档:

  • 注册环信IM:https://console.easemob.com/user/register

  • 环信鸿蒙SDK下载:https://www.easemob.com/download/im

相关文章:

【附源码】基于环信鸿蒙IM SDK实现一个聊天Demo

项目背景 本项目基于环信IM 鸿蒙SDK 打造的鸿蒙IM Demo,完全适配HarmonyOS NEXT系统,实现了发送消息,添加好友等基础功能。代码开源,功能简洁,如果您有类似开发需求可以参考。 源码地址:https://github.c…...

Python库常用函数-数据分析

Python库常用函数 1.pandas库 (1)数据读取与写入 读取 CSV 文件: data pd.read_csv(file.csv)读取 Excel 文件: data pd.read_excel(file.xlsx, sheet_nameSheet1)写入 CSV 文件: data.to_csv(new_file.csv, ind…...

汽车EEA架构:架构的简介

1.架构的定义 汽车领域谈论的架构一词,来源于英文单词Architecture。在《系统架构:复杂系统的产品设计与开发》一书中对架构的定义如下:系统架构是一种概念的具象化,是物理或信息功能到形式元素的分配,是系统之内的元素之间的关系与周边环境…...

渗透测试--数据库攻击

这篇文章瘾小生其实想了很久,到底是放在何处,最终还是想着单拎出来总结,因为数据库攻击对我们而言非常重要,而且内容众多。本篇文章将讲述在各位获取数据库权限的情况下,各个数据库会被如何滥用,以及能够滥…...

反向路径转发(RPF)

本文介绍了反向路径转发(RPF)是如何在FortiGate上实现的。 它还解释了特定于VDOM的CLI设置“config system settings -> set strict-src-check”如何修改RPF行为。 测试场景中使用了以下设置 反向路径过滤器(又名RPF)是一种安…...

Python 正则表达式常用特殊字符及其含义

以下是 Python 正则表达式常用特殊字符及其含义 的全面整理,涵盖了常见和重要的正则符号,以及它们的示例,适合用来写博客或学习使用: Python 正则表达式常用特殊字符及其含义 1. . (点号) 含义:匹配除换行符 \n 以外…...

Uniapp Android SpringBoot3 对接支付宝支付(最新教程附源码)

Uniapp Android SpringBoot3 对接支付宝支付(最新教程附源码) 1、效果展示2、后端实现2.1 引入支付宝SDK依赖 pom.xml2.2 配置 application.yml2.3 支付宝相关代码2.3.1 AlipayConfig.java2.3.2 ZfbPayConfig.java2.3.3 支付接口2.3.4 支付回调处理接口&…...

SQL DML 语句

CREATE TABLE classes (ClassID varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 班级ID,ClassName varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 班级名称,TeacherID varchar(20) CHARACTER SET utf8mb4…...

饲料颗粒机全套设备有哪些机器组成

颗粒饲料机主要用于将各种饲料原料(如玉米、豆粕、麦麸、鱼粉等)进行混合、压制,制成颗粒状的饲料。这种饲料不仅方便储存和运输,还能提高动物的采食效率和饲料利用率。同时,颗粒饲料在加工过程中能灭部分微生物和寄生…...

MySQL事务与锁

定义一个事务向d_eams数据库的student表中插入3条记录,并检验若插入相同的学号,则回滚事务,既插入无效,否则成功提交 delimiter $$ create procedure tr_proc() begindeclare continue handler for sqlstate 23000beginrollback;…...

汽车免拆案例 | 2007款宝马650i车发动机偶尔无法起动

故障现象 一辆2007款宝马650i车,搭载N62B48B发动机,累计行驶里程约为26万km。车主反映,发动机偶尔无法起动,故障频率较低,十几天出现1 次,且故障出现时起动机不工作。 故障诊断  接车后试车,…...

PostgreSQL和Oracle的sql差异

PostgreSQL和Oracle的sql差异 1.rownum &#xff08;1&#xff09;Oracle分页查询使用rownum&#xff0c;PostgreSQL使用limit offset ORACLEPOSTGRESQLselect * from (select rownum r,e.* from emp e where rownum <5) t where r>0;select * from emp limit 5 offset…...

SpringMvc完整知识点二(完结)

SpringMVC获取请求参数 环境准备工作等均省略&#xff0c;可详见快速入门&#xff0c;此处只写非共有部分代码 该部分示例项目SpringMvcThree已上传至Gitee&#xff0c;可自行下载 客户端请求参数的格式为&#xff1a;namevalue&passwordvalue... ... 服务端想要获取请求…...

29 - Java Serializable 序列化

Java的Serializable接口是Java序列化机制的核心&#xff0c;它允许一个对象的状态被转换为字节流&#xff0c;从而可以方便地进行存储或传输。 序列化后的对象可以被写到数据库、存储到文件系统&#xff0c;或者通过网络传输。 要在 Java 中使一个类可序列化&#xff0c;你需要…...

59 基于STM32的烟雾、红外、温湿度检测

所有仿真详情导航: PROTEUS专栏说明-CSDN博客 目录 一、主要功能 二、硬件资源 三、主程序编程 四、资源下载 一、主要功能 基于SMT32F103C8T6单片机,采用DHT11检测温湿度,采用光敏电阻检测光照,采用滑动变阻器分别模拟红外、烟雾,通过OLED显示屏显示,如果湿度过低…...

使用Excel 对S型曲线加减速算法进行仿真

项目场景&#xff1a; 项目场景&#xff1a;代码中写了S型加减速算法&#xff0c;相查看生成的加减速数组&#xff0c;直观的展示出来&#xff0c;USB通信一次64字节&#xff0c;对于我几个个32位的频率值不太方便&#xff0c;于是采用Excel进行仿真。 代码中如何生成S加减速曲…...

flink-connector-mysql-cdc:01 mysql-cdc础配置代码演示

flink-connector-mysql-cdc&#xff1a; 01 mysql-cdc基础配置代码演示02 mysql-cdc高级扩展03 mysql-cdc常见问题汇总04 mysql-cdc-kafka生产级代码分享05 flink-kafka-doris生产级代码分享06 flink-kafka-hudi生产级代码分享 flink-cdc版本&#xff1a;3.2.0 flink版本&…...

java计算机毕设课设—进销存管理系统(附源码、文章、相关截图、部署视频)

这是什么系统&#xff1f; 资源获取方式再最下方 java计算机毕设课设—进销存管理系统(附源码、文章、相关截图、部署视频) 一、项目简介 项目名称&#xff1a; 基于Java的进销存管理系统 开发背景&#xff1a; 在现代企业管理中&#xff0c;库存管理是核心环节之一&#…...

鸿蒙UI开发——渐变色效果

1、概 述 ArkTs可以通过颜色渐变接口&#xff0c;设置组件的背景颜色渐变效果&#xff0c;实现在两个或多个指定的颜色之间进行平稳的过渡。 目前提供三种渐变类型&#xff1a;线性渐变、角度渐变、径向渐变。 我们在鸿蒙UI布局实战 —— 个人中心页面开发中&#xff0c;默认…...

嵌入式硬件设计 — 智能设备背后的隐形架构大师

目录 引言 一、嵌入式硬件设计概述 &#xff08;一&#xff09;需求分析 &#xff08;二&#xff09;硬件选型 &#xff08;三&#xff09;电路设计 &#xff08;四&#xff09;PCB 制作与焊接 &#xff08;五&#xff09;硬件调试与测试 &#xff08;六&#xff09;软…...

Antares ESP MQTT库:ESP32/ESP8266接入Antares物联网平台指南

1. 项目概述Antares ESP MQTT 是一款专为 ESP32 和 ESP8266 平台设计的轻量级 Arduino 库&#xff0c;旨在大幅降低接入 Telkom Indonesia 运营的 Antares IoT 平台的开发门槛。其核心价值不在于实现 MQTT 协议栈&#xff08;该职责由 PubSubClient 承担&#xff09;&#xff0…...

LWIP内存管理踩坑实录:从pbuf泄漏到pcb耗尽,我的嵌入式网络调试日记

LWIP内存管理踩坑实录&#xff1a;从pbuf泄漏到pcb耗尽&#xff0c;我的嵌入式网络调试日记 凌晨三点&#xff0c;调试器上的红色LED还在闪烁。这是我连续第三个通宵追踪LWIP的内存问题——设备在运行48小时后必然崩溃&#xff0c;日志里满是"pbuf_alloc failed"和&q…...

Qt串口通信实战:用QSerialPort从零搭建一个串口调试助手(附完整源码)

Qt串口通信实战&#xff1a;从零构建工业级调试助手 在嵌入式开发和工业控制领域&#xff0c;串口通信作为最基础也最可靠的通信方式之一&#xff0c;至今仍发挥着不可替代的作用。无论是单片机与上位机的数据交换&#xff0c;还是工业设备的参数配置&#xff0c;一个稳定高效的…...

QT窗口特效实战:从透明到异形控件的全方位实现指南

1. 从零开始理解QT窗口特效 第一次接触QT窗口特效时&#xff0c;我被那些酷炫的透明和异形界面深深吸引。记得当时看到Mac OS X的Dock栏那种毛玻璃效果&#xff0c;就特别想在自己的QT应用中实现类似效果。经过多年实战&#xff0c;我发现QT实现这些特效其实比想象中简单得多。…...

[深度解析] AXI4-Stream Register Slice:时序优化的“外科手术刀”

1. 为什么需要AXI4-Stream Register Slice&#xff1f; 在FPGA设计中&#xff0c;时序问题就像血管中的血栓&#xff0c;随时可能让整个系统瘫痪。想象你正在设计一个4K视频处理流水线&#xff0c;每个像素都要经过十几级处理模块。当系统时钟频率提升到300MHz以上时&#xff0…...

OpenClaw 全面解析:Token时代的iPhone如何颠覆开发者工作流?

前言&#xff1a;两周15万Star背后的技术革命 2026年初&#xff0c;一个名为 OpenClaw 的开源项目在 GitHub 上以惊人速度走红——两周内突破 15 万 Star&#xff0c;如今已达 310k Star&#xff0c;成为近年来增速最快的开源项目之一。 黄仁勋在最新访谈中将其称为 “Token时代…...

杰理之人声消除额外保留部分频率声音办法【篇】

将原始声音分为两份&#xff0c;一份走原先的人声消除&#xff0c;另一份走EQ调节 最后输出声音 原先人声消除效果&#xff08;左-右&#xff09; EQ调节后声音...

VeighNa量化框架实战:如何免费获取TuShare金融数据(附完整接入代码)

VeighNa量化框架实战&#xff1a;零成本高效获取TuShare金融数据的完整指南 在量化交易领域&#xff0c;数据获取往往是第一个需要跨越的门槛。对于个人开发者和小型团队而言&#xff0c;如何在预算有限的情况下获取高质量的金融数据&#xff0c;成为决定项目成败的关键因素之一…...

如何快速上手uesave-rs:虚幻引擎存档编辑的终极指南

如何快速上手uesave-rs&#xff1a;虚幻引擎存档编辑的终极指南 【免费下载链接】uesave 项目地址: https://gitcode.com/gh_mirrors/ue/uesave 还在为无法修改心爱游戏的存档而烦恼吗&#xff1f;想要自定义游戏体验却不知从何下手&#xff1f;uesave-rs这款强大的Rus…...

RWKV7-1.5B-g1a参数详解教程:max_new_tokens/temperature/top_p调优实操手册

RWKV7-1.5B-g1a参数详解教程&#xff1a;max_new_tokens/temperature/top_p调优实操手册 1. 模型简介 rwkv7-1.5B-g1a 是基于新一代 RWKV-7 架构的多语言文本生成模型&#xff0c;特别适合中文场景下的基础问答、文案创作和简短总结任务。作为轻量级模型&#xff0c;它在保持良…...