UniApp 微信小程序 Demo
仓库提供 sdk/uniapp/demo-miniprogram,一个基于 @deeprespond/im-uniapp/miniprogram 的微信小程序示例(同一代码库可编译 H5 目标用于浏览器联调)。页面按微信聊天产品组织:消息 / 通讯录 / 我的三个 tab,外加聊天、群聊、好友资料、好友申请等二级页。它适合直接验证小程序端 SDK 能力,也可以把其中的 store 与页面状态处理迁移到自己的 UniApp 工程。
功能范围
| 模块 | 覆盖内容 |
|---|---|
| 账号 | 密码登录 / 注册、登录态自动恢复、服务器地址临时修改、运行日志 |
| 会话 | 未读角标、置顶、标为未读、草稿、正在输入、搜索、清空记录、tabBar 未读角标 |
| 消息 | 文本、表情、图片、视频、文件、语音、位置;撤回、回应、转发、重发;自动已读 |
| 好友 | 申请收发与接受 / 拒绝、备注、黑名单、删除;通讯录搜索 |
| 群聊 | 发起群聊、邀请 / 移除成员、改名、退群、解散,群内系统提示 |
| 资料 | 昵称与头像编辑、好友资料页 |
| 音视频 | 一对一通话入口仅在 H5 编译目标出现;小程序端 SDK 暂不支持 calls / channels 媒体,界面会明确提示 |
运行
bash
cd sdk/uniapp/demo-miniprogram
cp .env.example .env.local
# 编辑 .env.local;不要提交真实密码、Ticket 或长期密钥。
pnpm install两种运行模式:
| 模式 | 命令 | 说明 |
|---|---|---|
| H5 浏览器联调 | pnpm dev:h5 | 打开 http://127.0.0.1:5176;页面逻辑与 SDK 集成在浏览器验证,vite 代理 /client(含 WebSocket)到 IM 服务、/im-private /im-public 到 S3 兼容存储 |
| 微信开发者工具 | pnpm dev:mp-weixin | 产物在 dist/dev/mp-weixin,用微信开发者工具导入该目录;发布用 pnpm build:mp-weixin |
微信开发者工具中需关闭「合法域名校验」,并配置 API / Socket / 文件下载域名。微信基础库最低 2.21.3。
环境变量
.env.example 可复制为 .env.local 后按需填写:
| 变量 | 说明 |
|---|---|
VITE_IM_APP_KEY | 应用 App Key,默认 org#app |
VITE_IM_API_URL | IM 服务地址;H5 联调时填本地服务即可(dev 代理转发) |
VITE_IM_WS_URL | WebSocket 地址,可选 |
平台说明
- 中文:
wx.*宿主能力(录音、定位、文件打开)由小程序端提供;H5 目标缺浏览器权限时界面展示 SDK 的失败原因。 English:wx.*host capabilities (recording, location, document preview) come with the mini-program runtime; the H5 target surfaces SDK errors when browser permissions are missing. - 中文:小程序端
calls与channels媒体能力当前不支持(channels.supported为false),界面明确提示;一对一音视频通话入口仅在 H5 端出现。 English:callsandchannelsmedia are unsupported on the mini program today; call entries only appear on the H5 target. - 中文:凭证与 Ticket 由业务服务端签发,不要把 AppSecret 放入小程序。 English: Tickets come from your business server; never ship the AppSecret inside the mini program.
测试与源码包
页面逻辑与 SDK 集成通过 H5 编译目标在浏览器中以 Playwright 三账号互测验证(见仓库 Agent测试/sdk-uniapp/微信小程序重构三账号互测/);微信开发者工具与真机运行时(wx.* 原生能力)需在有 GUI 的环境中另行验证。
Demo 源码包(与仓库同版本,排除依赖与本地配置):deeprespond-uniapp-demo-miniprogram-1.0.0-alpha.zip
小程序端使用的 SDK 安装与下载见小程序 SDK。
