UniApp 微信小程序 Demo
仓库中的 sdk/uniapp/demo-miniprogram 是一个基于 @deeprespond/im-uniapp/miniprogram 的微信小程序示例,同一份代码也能编译为 H5 在浏览器中调试。页面按微信的结构组织:“消息”“通讯录”“我”三个标签页,加上聊天、群聊、好友资料、好友申请等二级页面。可以用它试小程序端 SDK 的功能,也可以把其中的 store 和页面状态处理搬到自己的 UniApp 工程中。
功能范围
| 模块 | 覆盖内容 |
|---|---|
| 账号 | 密码登录和注册、自动恢复登录、临时修改服务器地址、运行日志 |
| 会话 | 未读角标、置顶、标为未读、草稿、正在输入、搜索、清空聊天记录、tabBar 上的未读角标 |
| 消息 | 文本、表情、图片、视频、文件、语音、位置;撤回、表情回应、转发、重发;自动标记已读 |
| 好友 | 发送、接受和拒绝好友申请,备注、黑名单、删除;通讯录搜索 |
| 群聊 | 发起群聊、邀请和移除成员、改群名、退群、解散,群内的系统提示 |
| 资料 | 修改昵称和头像、好友资料页 |
| 音视频 | 一对一通话的入口只在 H5 中显示;小程序端 SDK 暂不支持通话和频道的媒体,界面中会提示 |
运行
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 调试时填本地服务即可(由开发代理转发) |
VITE_IM_WS_URL | WebSocket 地址,可选 |
平台说明
- 录音、定位、打开文件等能力由小程序的
wx.*接口提供;H5 中浏览器没有相应权限时,界面显示 SDK 给出的失败原因。 - 小程序端目前不支持通话和频道的媒体(
channels.supported为false),界面中会提示;一对一通话的入口只在 H5 中显示。 - 登录凭证由业务服务端签发,不要把 AppSecret 放进小程序。
测试与源码包
页面逻辑和 SDK 调用在 H5 目标下用 Playwright 做了三账号测试;微信开发者工具和真机上的 wx.* 原生能力需要在有图形界面的环境中另外测试。
Demo 源码包(1.0.1,不含依赖和本地配置):deeprespond-uniapp-demo-miniprogram-1.0.1.zip
小程序端使用的 SDK 的安装和下载见小程序 SDK。
