鸿蒙开发融云demo初始化和登录
鸿蒙开发融云IMKit初始化和登录
融云鸿蒙版是不带UI的,得自己一步步搭建。
下面说如何初始化和登录:
一、初始化:
/*** @desc : 初始化融云* @author : congge on 2024-07-12 15:47**/public static initRongIm() {IMEngine.getInstance().init(getContext(), CommonConstants.RONG_IM_KEY, new InitOption())// 注册自定义消息let clazzList: List<MessageContentConstructor> = new List()clazzList.add(CustomizeReadReceiptMessage)clazzList.add(CustomizeGiftMessage)IMEngine.getInstance().registerMessageType(clazzList)// 监听消息接收IMEngine.getInstance().setMessageReceivedListener((message: Message, _info: ReceivedInfo) => {logContent("receivedMessage",message)if (message.content) {if (message.objectName === HQVoiceMessageObjectName && message.direction === MessageDirection.Receive && !_info.isOffline) {// isOffline为true,是卸载重装收到的消息不用管,正常刚收到的语音消息全部是未点击,它不可能一收到就点击了的MMKVNoClearUtil.saveVoiceMessageReadStatus(message.targetId,message.messageId,false)}// 在这就不发已读回执了,避免两个鸿蒙一直在互发已读// if (MMKVUtil.getCurrentChatTargetId(message.targetId) === message.targetId) {// ImUtils.sendMyReadReceiptMessage(message.targetId,message.sentTime)// } else if(MainPage.homeTabSelected === 3){// ImUtils.sendMyReadReceiptMessage(message.targetId,message.sentTime)// }// 刷新首页未读数EventKeys.postEvent(EventKeys.MsgRedEvents,MsgRedEvent())// 刷新会话列表,不打算自己插入会话EventKeys.postEvent(EventKeys.RefreshMsgListEvents)}// 接收到单聊消息,发送到聊天界面if (message.conversationType === ConversationType.Private || message.targetId === ImType.KEFU_ID) {EventKeys.postEvent(EventKeys.ReceivedImMessageEvents,ReceivedImMessageEvent(message))}});}
二、登录:
public static connectIm() {if (MMKVUtil.getImToken()) {ImUtils.realConnect(MMKVUtil.getImToken());} else {//正常只有第一次进入应用会为""ImViewModel.postImToken(false, (result) => {ImUtils.realConnect(result.token)})}}private static realConnect(token?: string, isAgain: boolean = false) {if (token) {IMEngine.getInstance().setConnectionStatusListener((status: ConnectionStatus) => {logContent('IM-App', 'setConnectionStatusListener onChanged status:' + status);if (status === ConnectionStatus.DisconnectUserKicked) {showToast($r('app.string.account_notice_tick'));// 特别注意:对方登录,强迫退出// Router.pushGuidePage(true)}});// timeout ≦ 0,IM 将一直连接,直到连接成功或者发生无法连接的业务错误(如 token 非法)IMEngine.getInstance().connect(token, 0).then(result => {if (EngineError.Success === result.code) {// 连接成功MMKVUtil.saveTargetId(result.userId)EventKeys.postEvent(EventKeys.MsgRedEvents,MsgRedEvent())logContent("imStatus", "成功token: " + token)logContent("imStatus", "成功targetId: " + result.userId)//let userId = result.userId;return;}if (EngineError.ConnectTokenExpired === result.code) {// Token 过期,从 APP 服务请求新 token,获取到新 token 后重新 connect()} else if (EngineError.ConnectionTimeout === result.code) {// 连接超时,弹出提示,可以引导用户等待网络正常的时候再次点击进行连接showToast($r('app.string.net_error'))} else {//其它业务错误码,请根据相应的错误码作出对应处理。logContent("imStatus", result.code)}});}}
鸿蒙融云Demo源码结构图:

有问题或者需要完整源码的私信我
相关文章:
鸿蒙开发融云demo初始化和登录
鸿蒙开发融云IMKit初始化和登录 融云鸿蒙版是不带UI的,得自己一步步搭建。 下面说如何初始化和登录: 一、初始化: /*** desc : 初始化融云* author : congge on 2024-07-12 15:47**/public static initRongIm() {IMEngine.getInstance()…...
手机防窥膜的工作原理是怎样的?有必要使用防窥膜吗?
在信息高度发达的社会中,我们通过手机可以实现非常多的操作,同时手机中有存在许多我们的隐私信息,伴随使用手机的时间增多,手机中的信息也有可能被暴露,尤其是在公共场所旁人很容易通过瞥视你的手机屏幕获取到一些信息…...
【Python_PySide6学习笔记(三十九)】基于QLineEdit实现自定义文本框,用于格式化文本,每四个字符后添加一个空格
基于QLineEdit实现自定义文本框,用于格式化文本,每四个字符后添加一个空格 基于QLineEdit实现自定义文本框,用于格式化文本,每四个字符后添加一个空格前言1、实现要点1.1 继承和初始化1.2 定义textChanged的槽函数1.3 格式化逻辑1…...
23种设计模式口诀速记
设计模式的核心在于提供了相关问题的解决方案,使得人们可以更加简单方便的复用成功的设计和体系结构 23种设计模式,此处不举例,可以去看我上传的资源里面由详细汇总 口诀: 创建:想见员工丹 [抽象工厂、建造者(生成者…...
n > m 将输出文件 m 和 n 合并。 n < m 将输入文件 m 和 n 合并。 有什么区别
在你的描述中,似乎有一点误解。n >& m 和 n <& m 并不是用来合并文件的,而是用于重定向文件描述符(file descriptors)。让我澄清一下这两个命令的确切含义以及它们之间的区别。 n >& m —— 输出重定向 含…...
语言障碍在自闭症儿童中的表现及应对
自闭症儿童常常面临着语言障碍的困扰,这给他们的成长和发展带来了巨大挑战。 语言障碍在自闭症儿童中的表现形式多样。比如,有个叫小明的自闭症儿童,已经五岁了却还只会说一些简单的词语,如 “爸爸”“妈妈”“要” 等,…...
(成功解决)ubuntu22.04不小心更新成了atzlinux12.7.1,右上角出现红色错误符号
文章目录 🌕问题🌕查看系统版本🌕为什么更新更成了atzlinux🌕通过修复依赖关系尝试解决右上角红色错误符号🌕把源换成ubuntu的源🌕删除atzlinux源和自定义的第三方源🌕重新创建/etc/os-release文…...
005 C#语言基本元素概览,初识类型,变量与方法
构成C#语言的基本元素 标记 :C#编译器可以识别的文本 关键字(Keyword)操作符(Operator)标识符(Identifier)标点符号文本注释和空白 简要介绍数据据类型、变量与方法 变量是存放数据的地方,简称数据 方法是处理数据的逻辑,简称算法 程序…...
Spring Cloud --- Sentinel 授权规则
授权规则概述 在某些场景下,需要根据调用接口的来源判断是否允许执行本次请求。此时就可以使用 Sentinel 提供的授权规则来实现,Sentinel 的授权规则能够根据请求的来源判断是否允许本次请求通过。 在 Sentinel 的授权规则中,提供了 白名单…...
计算机网络基础 - 传输层(1)
计算机网络基础 传输层概述多路复用与解复用概述解复用的工作原理无连接多路解复用面向连接的多路复用 无连接运输:UDP概述UDP 主要应用UDP 报文段结构 可靠数据传输的原理概述构建可靠数据传输协议经完全可靠信道的可靠数据传输:rdt1.0经具有比特差错信…...
Chrome DevTools:Console Performance 汇总篇
Chrome DevTools Chrome 开发者工具是一套 Web 开发者工具,直接内置于 Google Chrome 浏览器中。 开发者工具可以帮助您即时修改页面和快速诊断问题,最终帮助您更快地构建更好的网站。 一、开启 DevTools 右上角菜单 > 更多工具 > 开发者工具 页面…...
【Spark | Spark-Core篇】RDD行动算子action
使用转换算子是产生一个新的rdd,此时在driver端会生成一个逻辑上的执行计划,但任务还没有执行。但所谓的行动算子,其实就是触发作业执行的方法(runJob)。底层代码调用的是环境对象的runJob方法。 1. reduce 函数源码&…...
23.Redis核心数据结构
一、String(k-v) 字符串常规操作 备注 应用场景 SET key value 存入字符转键值对 单值缓存、对象缓存 MSET [key value, key value] 批量存储字符串键值对 对象缓存 SETNX key value 存入一个不存在的键值对 分布式锁 GET KEY 获取一个字符串键值 MGET [key,key,…...
免费送源码:Node.JS+Express+MySQL Express 流浪动物救助系统 计算机毕业设计原创定制
摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发达,流浪动物救助系…...
基于Java+Springboot+Vue开发的旅游景区管理系统
项目简介 该项目是基于JavaSpringbootVue开发的旅游景区管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的旅…...
Python 实现的风控系统(使用了kafka、Faust、模拟drools、redis、分布式数据库)
以下是一个使用 Python 实现的风控系统示例,涵盖以下技术组件: Kafka 消息中间件:用于实时接收支付业务系统传递的交易数据。Faust(Kafka Streams 的 Python 等价):用于流式处理 Kafka 中的消息。规则引擎…...
Linux运维_Rocky8 安装配置Zabbix
Zabbix 是一个开源的监控解决方案,用于监控网络、服务器、应用程序和服务的性能。它提供实时监控、数据收集、告警通知以及图形化界面,方便用户查看和分析监控数据。Zabbix 支持多种数据收集方式,包括 SNMP、IPMI、JMX 和自定义脚本ÿ…...
jQuery Mobile 滚屏事件
jQuery Mobile 滚屏事件 在移动开发中,滚屏事件是一个非常重要的交互方式,它可以让用户通过滚动屏幕来浏览内容。jQuery Mobile 是一个流行的移动框架,它提供了一套丰富的组件和事件,使得在移动设备上实现滚屏效果变得简单。本文将详细介绍 jQuery Mobile 中的滚屏事件,包…...
3.1.1ReactOS系统中搜索给定长度的空间地址区间函数的实现
系列文章目录 //搜索给定长度的空间地址区间 MmFindGap(); PMADDRESS_SPACE AddressSpace,//该进程用户空间 ULONG_PTR Length,//寻找的空间间隔大小 ULONG_PTR Granularity,//粒度位,表明空间起点的对齐要求,注意是起…...
arm64系统不支持32位的解决armel armhf
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
【K8s】解惑:K8s 与 Docker 的关系
目录 引言:一个绕不开的问题 一句话说清K8s与Docker的关系 澄清三个误解 从命令的角度,直观对比 引言:一个绕不开的问题 在学习云原生技术的路上,几乎每个人都会遇到这样一个困惑: “有了 Kubernetes(…...
从 0 到 1:10 分钟跑通第一个 Ascend ACL 推理程序
第一次在昇腾 NPU 上跑推理,很多人卡在第一步:环境装好了,ATC 模型转换也成功了,一跑推理程序就报 aclInit failed 或者 load model failed。 我当年第一次跑 ACL 推理,环境装了 3 遍,模型转了 5 遍&#…...
用于参数扫描的自定义工具
能够改变光学系统的参数是任何设置分析的关键部分,以便更好地了解系统在从制造错误到组件潜在错位的任何情况下的行为。设计一个在面对这些不可避免的偏离理想化预期设计时表现出鲁棒性的系统,与找到一个完全满足所有规范的初始设计一样重要,…...
通用异步导出服务设计:从业务功能到平台基础能力的抽象
在后台管理系统中,“导出 Excel”几乎是一个绕不开的功能。看似只是点击一个按钮、下载一个文件,背后却经常隐藏着性能、稳定性、安全性和用户体验问题。 当数据量较小时,同步导出通常可以满足需求。但随着业务数据规模增长,导出操…...
3步让PS手柄在Windows上完美运行:DS4Windows终极配置指南
3步让PS手柄在Windows上完美运行:DS4Windows终极配置指南 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 你是否曾为心爱的PlayStation手柄在Windows电脑上无法被游戏识别而烦…...
零基础掌握GVAS解析与游戏存档编辑:解锁Unreal Engine数据处理新姿势
零基础掌握GVAS解析与游戏存档编辑:解锁Unreal Engine数据处理新姿势 【免费下载链接】uesave Rust library and CLI to read and write Unreal Engine save files 项目地址: https://gitcode.com/gh_mirrors/ue/uesave Unreal Engine游戏存档修改不再困难&a…...
如何快速掌握《鸣潮》游戏模组开发:专业逆向工程与AES加密技术完整指南
如何快速掌握《鸣潮》游戏模组开发:专业逆向工程与AES加密技术完整指南 【免费下载链接】wuwa-mod Wuthering Waves pak mods 项目地址: https://gitcode.com/GitHub_Trending/wu/wuwa-mod WuWa-Mod是一个专门为热门游戏《鸣潮》(Wuthering Waves…...
0603光刻机 第六篇:EUV超精密光学系统(S级 长期死磕突破)第3小节:超高纯氟化钙材料难点
第六篇:EUV超精密光学系统(S级 长期死磕突破) 第3小节:超高纯氟化钙材料难点(深紫外配套核心,全维度死磕解析) 前置硬核声明 氟化钙单晶(CaF₂)是DUV深紫外光刻核心光学基…...
家庭宽带上网背后的隐形功臣:一文拆解光猫/路由器里的NAT和DHCP是怎么协同工作的
家庭网络中的隐形守护者:NAT与DHCP如何编织你的数字生活 当你躺在沙发上用手机追剧时,是否想过为什么所有家庭设备都能和平共处在同一网络?192.168.1.x这串神秘数字背后,藏着两套精密的协议系统——它们像建筑物的水电管线般隐形却…...
武汉大学等高校联手揭露AI助手的“记忆盲区“:它们真的记得你吗?
这项由武汉大学、香港中文大学和香港科技大学联合开展的研究以预印本形式于2026年5月发表,论文编号为arXiv:2605.06527,有兴趣深入了解的读者可以通过该编号查询完整论文。你有没有试过这样一件事:你和手机里的AI助手聊了很久,告诉…...
