微信小程序 SDK
微信小程序 SDK 提供登录、单聊与群聊、好友、聊天室、消息同步、路径文件、AAC 录音和页面数据绑定。支持微信、企业微信中的小程序,基础库最低 2.21.3,当前版本 2.0.0-alpha.0。已提供源码、自动测试和本地制品构建,公共 npm 分发与各类真机验收尚未完成。
| 接入方式 | 使用的包 |
|---|---|
| 原生微信小程序 | @deeprespond/im-miniprogram,预打包 CommonJS,无运行时依赖 |
| Taro React | @deeprespond/im-web/miniprogram + @deeprespond/im-web-react/miniprogram,先导入 @deeprespond/im-web/polyfills |
| SDK 在分包中 | 主包导入独立 /bind,通过 createDRClientRef 在加载客户端后设置引用 |
原生包的核心、适配层、render 和 locale 都在主入口中,独立 bind.js 仅包含页面绑定。初始化、用户、群、好友等接口与 Web SDK 一致,媒体和生命周期按小程序的能力适配。
从源码构建
在仓库根目录执行:
make sdk-miniprogram-test
make sdk-miniprogram-example
cd sdk/miniprogram
pnpm pack --out /tmp/im-miniprogram.tgz在你的小程序项目中安装生成的 tgz,再在开发者工具执行“构建 npm”。package.json 的 miniprogram 字段自动选取原生发行文件。开发者工具 setting.babelSetting.ignore 配置 miniprogram_npm/@deeprespond/**。
仓库提供 sdk/miniprogram/example、example-subpackage、example-ts 和 example-taro。原生示例含普通聊天、Page 构造页面、Skyline、群资料、聊天室和性能测量。导入示例后,修改自己的 AppID、appKey 和 apiUrl,登录凭证由业务服务端签发。
接入配置
小程序后台的 request 域名包括 IM HTTPS 地址和对象存储签名 PUT 地址;Socket 域名配置 WSS,downloadFile 域名配置文件下载地址。业务还应配置相册、麦克风等使用到的隐私接口。
服务端需要支持 /client/v1/ 下 POST 携带 X-HTTP-Method-Override: PATCH。SDK 会自动转换 PATCH,修改用户资料、消息和推送设置无需业务手工处理。
平台边界
小程序只接收路径文件,不接收 Blob。图片本地缓存默认 50 MiB,单次下载最多 200 MiB;fetchBlob() 返回 blob_unsupported。实时音视频通话不可用,im.calls.supported 为 false,仍可处理来电拒接和通话记录。QQ、Donut、支付宝和抖音宿主不在原生包的支持范围内。
手机微信进入后台后 4 秒暂停连接,回到前台后恢复;电脑版微信不主动后台断开。加密存储不支持时会告警并降级;用户数据按应用、用户和 API origin 隔离,快照写入失败会告警,当前内存会话仍可使用。
自动验证覆盖微信回调接口模型和真实服务端,不能替代真机对二进制 PUT、后台回收、加密存储、隐私授权、分包和 Skyline 的验收。接入代码见快速集成。
独立频道能力
当前仅提供频道、本人会话与成员查询及强类型导出,没有 LiveKit 频道媒体适配。channels.supported 为 false,加入在预留前拒绝,见频道查询与限制。
