UniApp App(Android / iOS)Demo
仓库提供 sdk/uniapp/demo-app,一个面向 UniApp App-Plus(Android / iOS)的完整 IM 示例,使用 @deeprespond/im-uniapp/app 配合 uni_modules 原生插件(IM / RTC 原生桥、设备推送、系统来电)。同一代码库可编译 H5 目标(@deeprespond/im-uniapp/h5)用于浏览器联调与自动化测试;App 专属能力在 H5 目标下自动隐藏或降级提示。
功能范围
| 模块 | 覆盖内容 |
|---|---|
| 账号 | 密码登录 / 注册、登录态自动恢复、服务器地址临时修改、运行日志 |
| 会话 | 未读角标、置顶、标为未读、草稿、正在输入、搜索、清空记录、tabBar 角标 |
| 消息 | 文本、表情、图片、视频、文件、语音、位置;撤回、回应、转发、重发;自动已读 |
| 好友 | 申请收发与接受 / 拒绝、备注、黑名单、删除;通讯录搜索 |
| 群聊 | 发起群聊、邀请 / 移除成员、改名、退群、解散,群内系统提示 |
| 音视频 | 一对一通话(来电浮层 + 接听 / 挂断 / 静音 / 摄像头);RTC 频道页(原生 / H5 双渲染路径) |
| App 专属 | 设备推送注册、系统来电(iOS CallKit / Android Telecom)、dr-rtc-video 原生视频渲染 |
运行(App 真机 / 模拟器,主路径)
- 中文:复制
.env.example为.env.local,写入公开appKey、apiUrl;不要放入服务端 Secret。 English: Copy.env.exampleto.env.localwith the publicappKey/apiUrl; never store a server secret. - 用 HBuilderX 打开
sdk/uniapp/demo-app目录,安装uni_modules依赖,选择 Android / iOS 真机或模拟器运行(UTS 插件自动编译)。 - 在
manifest.json与原生插件配置中填写包名、推送证书(FCM / 华为 / 荣耀 / 小米 / OPPO / vivo / 魅族)、CallKit / Telecom 权限及 RTC 服务地址。 - 先在「消息 / 通讯录」验证登录与消息,再用「RTC 频道」页验证媒体权限与轨道渲染。
UTS 原生插件可从UniApp SDK 接入与下载获取离线包。
运行(H5 浏览器联调 / 自动化测试)
cd sdk/uniapp/demo-app
cp .env.example .env.local
# 编辑 .env.local;不要提交真实密码、Ticket 或长期密钥。
pnpm install
pnpm dev:h5 # http://127.0.0.1:5187vite 代理把 /client(含 WebSocket)转发到 IM 服务(默认 IM_HARNESS_URL=http://127.0.0.1:18480),/im-private、/im-public(媒体签名直链)转发到 S3 兼容存储(默认 IM_S3_URL=http://127.0.0.1:9010)。
环境变量
| 变量 | 说明 |
|---|---|
VITE_IM_APP_KEY | 应用 App Key,默认 org#app |
VITE_IM_API_URL | IM 服务地址;H5 联调时填本地服务即可(dev 代理转发) |
VITE_IM_WS_URL | WebSocket 地址,可选 |
平台条件编译与降级
工程用 #ifdef APP-PLUS / H5 收敛平台差异(原生桥在 core/native.js,客户端工厂在 core/client.js):
- App 端:推送注册入口、系统来电(Telecom / CallKit)、
dr-rtc-video原生轨道渲染可用; - H5 端:页面逻辑与 SDK 集成与 App 端共享;推送入口被条件编译裁剪,系统来电不渲染,通话与频道媒体走浏览器 WebRTC / LiveKit;录音、定位、文件选择依赖浏览器能力,缺失时界面展示 SDK 的失败原因。
测试边界与源码包
Linux / CI 可执行 H5 目标的三账号端到端互测(Playwright 模拟点击)与原生桥静态检查;Android Gradle 构建、iOS Xcode 构建与真机功能(推送、CallKit / Telecom、RTC 原生渲染)需要对应开发机与设备。真实执行记录见仓库 Agent测试/sdk-uniapp/Android重构三账号互测/ 与 Agent测试/sdk-uniapp/iOS重构三账号互测/。
Demo 源码包(与仓库同版本,排除依赖与本地配置):deeprespond-uniapp-demo-app-1.0.0-alpha.zip
