融云 uni-app IMKit 上线,1 天集成,多端畅行

news2025/5/22 21:40:26

融云 uni-app IMKit 正式上线,支持一套代码同时运行在 iOS、Android、H5、小程序主流四端,集成仅需 1 天,并可确保多平台的一致性体验。

融云 uni-app IMKit 在 Vue 3 的高性能加持下开发实现,使用 Vue 3 Composition API,提供更灵活高效的代码组织方式;基于 Vue 3 强大的响应式系统实现数据管理,让组件开发更模块化、更易维护;同时依托 Vue 3 优化的底层架构带来更快的运行性能和更小的打包体积,全方位提升开发效率和应用性能,让开发者享受更流畅的集成体验。

高性能架构设计

采用“开源组件 + 闭源数据包”的架构设计,融云 uni-app IMKit 可在提供丰富的界面组件的同时确保数据安全。

开源的 UI 组件库

提供丰富的界面组件:组件高度可复用,并提供统一的样式系统和完善的类型支持。

在这里插入图片描述

丰富的公共组件:

▪导航栏组件:自定义导航栏,支持标题、返回按钮等

▪头像组件:支持默认头像、在线状态显示

▪长按弹窗:支持自定义菜单项

▪状态指示器:网络状态、连接状态等

▪徽标组件:未读消息数、提醒等

▪自定义图标组件:支持自定义图标,及其大小和颜色

闭源的数据管理包

使用 im-uikit-store 统一管理数据流,数据流转路径清晰,状态更新机制高效。

在这里插入图片描述

快速集成指南

前置条件

☑ 准备 uni-app 项目

☑ 注册开发者账号:注册成功后,控制台会默认自动创建您的首个应用,默认生成开发环境下的 App Key,使用国内数据中心。

☑ 获取开发环境的应用 App Key:如不使用默认应用,请参考 如何创建应用,并获取对应环境 App Key 和 App Secret。

下载资源

从融云官网下载以下资源

▪RCUIKit 源码目录:包含 UI Kit 的核心实现

▪Demo 源码:包含完整的示例项目

导入 RCUIKit 源码到项目中

SDK 初始化连接

☑ 创建 package.json 并添加依赖

{
  "dependencies": {
    "@rongcloud/engine": "^5.18.0",
    "@rongcloud/imlib-next": "^5.18.0",
    "@rongcloud/im-uikit-store": "1.0.0",
    "base-64": "^1.0.0",
    "mobx": "^6.13.7"
  }
}
☑ 初始化 Web IMLib SDK
import * as RongIMLib from '@rongcloud/imlib-next';

uni.$RongIMLib = RongIMLib;
// 应用 App Key
const APP_KEY = 'your_app_key';
// lib 初始化
uni.$RongIMLib.init({
  appkey: APP_KEY, // 从融云开发者后台获取
});
☑ 初始化 kit-store
import { RCKitStoreInstaller } from '@rongcloud/im-uikit-store';

// Kit store 初始化
const store = RCKitStoreInstaller();
uni.$RongKitStore = store;

☑ 连接 IM

// 连接 IM 'your_token' 临时测试可从开发者后台获取
const TOKRN = 'your_token';
uni.$RongIMLib.connect(TOKRN).then((res) => {
  const { code, data } = res;
  if (code !== uni.$RongIMLib.ErrorCode.SUCCESS) {
    uni.showToast({
      title: `登录失败 code: ${code}`, icon: 'none',
    });
  }
});

配置路由

在 pages.json 中添加以下配置

{
  "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
    {
      // 会话列表页
      "path": "RCUIKit/pages/conversation/index",
      "style": {
        "navigationStyle": "custom"
      }
    },
    {
      // 会话页
      "path": "RCUIKit/pages/chat/index",
      "style": {
        "navigationBarTitleText": "uni-uikit-demo",
        "navigationStyle": "custom",
        "app-plus": {
          "bounce": "none"
        }
      }
    },
    {
      // 转发消息页
      "path": "RCUIKit/pages/chat/forward-message",
      "style": {
        "navigationStyle": "custom"
      }
    },
    {
      // 视频播放页
      "path": "RCUIKit/pages/chat/video-play",
      "style": {
        "navigationStyle": "custom"
      }
    }
  ]
}

启动项目,预览查看

☑ 在 HBuilderX 中打开项目;

☑ 点击“运行” → “运行到浏览器”或“运行到手机或模拟器”;

☑ 等待项目编译完成并启动。


{
  "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
    {
      // 会话列表页
      "path": "RCUIKit/pages/conversation/index",
      "style": {
        "navigationStyle": "custom"
      }
    },
    {
      // 会话页
      "path": "RCUIKit/pages/chat/index",
      "style": {
        "navigationBarTitleText": "uni-uikit-demo",
        "navigationStyle": "custom",
        "app-plus": {
          "bounce": "none"
        }
      }
    },
    {
      // 转发消息页
      "path": "RCUIKit/pages/chat/forward-message",
      "style": {
        "navigationStyle": "custom"
      }
    },
    {
      // 视频播放页
      "path": "RCUIKit/pages/chat/video-play",
      "style": {
        "navigationStyle": "custom"
      }
    }
  ]
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

篇章五 项目创建

目录 1.创建一个SpringBoot项目 2.创建核心类 2.1 Exchange类 2.2 MessageQueue类 2.3 Binding类 2.4 Message类 1.Message的组成 2.逻辑删除 3.工厂方法 4.序列化与反序列化 5.offsetBeg和offsetEnd 1.创建一个SpringBoot项目 1.点击 2.填写表单 3.添加依赖 2.创建…

aws平台s3存储桶夸域问题处理

当我们收到开发反馈s3存在跨域问题 解决步骤: 配置 S3 存储桶的 CORS 设置: 登录到 AWS 管理控制台。转到 S3 服务。选择你存储文件的 存储桶。点击 权限 标签页。在 跨域资源共享(CORS)配置 部分,点击 编辑。 登陆…

【vue-text-highlight】在vue2的使用教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、下载二、使用步骤1.引入库2.用法 效果速通 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发…

pycharm无法正常调试问题

pycharm无法正常调试问题 1.错误代码 已连接到 pydev 调试器(内部版本号 231.8109.197)Traceback (most recent call last):File "E:\Python\pycharm\PyCharm 2023.1\plugins\python\helpers\pydev\_pydevd_bundle\pydevd_comm.py", line 304, in _on_runr r.deco…

Leetcode百题斩-哈希

看来面试前还是要老老实实刷leetcode为好,今天看到一个题库,leetcode百题斩,刚好最近面试的这两题全在里面。瞄了一眼,也有不少题之前居然也刷过。那么,冲冲冲,看多久能把这百题刷完。 第一天,先…

EXIST与JOIN连表比较

结论 1:EXIST可以用于链表,且可以利用到索引2:当join无法合理利用到索引,可以尝试EXIST链表3:EXIST在某些情况下可以更好地利用到索引4:大数据量时,要考虑EXIST的使用 EXIST SQL: EXPLAN JOIN…

【Linux】利用多路转接epoll机制、ET模式,基于Reactor设计模式实现

📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🅒 C 语言 | 🌐 计算机网络 上篇文章:多路转接epoll,实现echoserver 至此,Linux与…

react中运行 npm run dev 报错,提示vite.config.js出现错误 @esbuild/win32-x64

在React项目中运行npm run dev时,如果遇到vite.config.js报错,提示esbuild/win32-x64在另一个平台中被使用,通常是由于依赖冲突或缓存问题导致的。解决方法是删除node_modules文件夹,并重新安装依赖。 如下图: 解决办…

鸿蒙UI开发——Builder与LocalBuilder对比

1、概 述 在ArkUI中,有的朋友应该接触过Builder和LocalBuilder。其中有了LocalBuilder的存在,是为了解决组件的父子关系和状态管理的父子关系保持一致的问题。 这里面最直观的表现则是this的指向问题与组件刷新问题,本文对Builder与LocalBu…

关于光谱相机的灵敏度

一、‌灵敏度的核心定义‌ ‌光谱灵敏度(单色灵敏度)‌ 描述光谱相机对单色辐射光的响应能力,即探测器对特定波长入射光的输出信号强度与入射光功率的比值。 例如,若在680nm波长下的光谱灵敏度较高,则表示该相机对此…

Model 速通系列(一)nanoGPT

这个是新开的一个系列用来手把手复现一些模型工程,之所以开这个系列是因为有人留言说看到一个工程不知道从哪里读起,出于对自身能力的提升与兴趣,故新开了这个系列。由于主要动机是顺一遍代码并提供注释。 该系列第一篇博客是 nanoGPT &…

MySQL--day4--排序与分页

(以下内容全部来自上述课程) 1. 排序数据 1.1 排序基本使用 #1.排序 #如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的 SELECT * FROM employees;# 练习:按照salary从高到低的顺序显示员工信息 # 使用 ORDER …

系分论文《论软件系统安全分析和应用》

系统分析师论文范文系列 【摘要】 2023年3月,我司承接了某知名电商企业“智能化供应链管理系统”的开发任务,我作为系统分析师负责全面的安全分析与设计工作。该系统以提升电商供应链效率为核心,整合仓储、物流、支付等模块,并需应…

Mac安装redis

1、 去往网址 http://​编download.​编redis.io/releases/ 找到任意 结尾为* .tar.gz的文件下载下来 2、使用终端进入下载下来的redis文件 3、直接执行redis-server 如果出现redis标志性的图代表成功 如果显示command not found :redis-server 则在终端再进入src文件夹下&…

srs-7.0 支持obs推webrtc流

demo演示 官方教程: https://ossrs.net/lts/zh-cn/blog/Experience-Ultra-Low-Latency-Live-Streaming-with-OBS-WHIP 实现原理就是通过WHIP协议来传输 SDP信息 1、运行 ./objs/srs -c conf/rtc.conf 2、obs推流 3、web端播放webrtc流 打开web:ht

Babylon.js学习之路《七、用户交互:鼠标点击、拖拽与射线检测》

文章目录 1. 引言:用户交互的核心作用1.1 材质与纹理的核心作用 2. 基础交互:鼠标与触摸事件2.1 绑定鼠标点击事件2.2 触摸事件适配 3. 射线检测(Ray Casting)3.1 射线检测的原理3.2 高级射线检测技巧 4. 拖拽物体的实现4.1 拖拽基…

星际争霸小程序:用Java实现策略模式的星际大战

在游戏开发的世界里,策略模式是一种非常实用的设计模式,它允许我们在运行时动态地选择算法或行为。今天,我将带你走进一场星际争霸的奇幻之旅,用Java实现一个简单的星际争霸小程序,通过策略模式来模拟不同种族单位的战…

Python数据可视化高级实战之一——绘制GE矩阵图

目录 一、课程概述 二、GE矩阵? 三、GE 矩阵图的适用范围 五、GE 矩阵的评估方法 (一)市场吸引力的评估要素 二、企业竞争实力的评估要素 三、评估方法与实践应用 1. 定量与定性结合法 2. 数据来源 六、GE矩阵的图形化实现 七、总结:GE 矩阵与 BCG 矩阵的对比分析 (一)GE…

StreamSaver实现大文件下载解决方案

StreamSaver实现大文件下载解决方案 web端 安装 StreamSaver.js npm install streamsaver # 或 yarn add streamsaver在 Vue 组件中导入 import streamSaver from "streamsaver"; // 确保导入名称正确完整代码修正 <!--* projectName: * desc: * author: dua…

CSS【详解】弹性布局 flex

适用场景 一维&#xff08;行或列&#xff09;布局 基本概念 包裹所有被布局元素的父元素为容器 所有被布局的元素为项目 项目的排列方向&#xff08;垂直/水平&#xff09;为主轴 与主轴垂直的方向交交叉轴 容器上启用 flex 布局 将容器的 display 样式设置为 flex 或 i…