外观
微信原生小程序接入
密信 IM 开发版 5.0 的微信原生组件提供无界面 IM SDK 与 WXML/WXSS 聊天界面,支持会话、消息、联系人和群组接入。组件按授权清单配套交付;微信目标提供语音消息,不提供实时通话组件。
接入准备
取得授权的微信制品与自包含参考项目,使用微信开发者工具导入。真实项目还需 AppID、request/socket/uploadFile/downloadFile 合法域名、隐私用途及实际功能对应的权限配置。
使用交付包配置的基础库版本,并为正式 AppID 设置合法域名。真机和发布构建保持域名校验开启。
创建实例
独立制品通过 sdk.js 提供 CommonJS 入口。下面假定该文件位于当前宿主模块的同级目录。应用级账号控制器先执行 const im = createWechatImClient(config, wx) 并保留实例,再调用连接函数:
js
const { createWechatImClient } = require('./sdk.js')
async function connectIm(im, session) {
await im.connect(session)
}config 和 session 由宿主提供。后端认证平台固定使用 wechat,设备码采用当前小程序的稳定设备标识;不能以手机操作系统 android 或 ios 替代。
SDK 应由应用级账号生命周期持有。连接失败时,宿主仍持有 im,可按错误类型处理;确定放弃该实例或退出账号时执行 await im.dispose(),不要直接丢弃引用并新建实例。切换页面只清理本页订阅,不随聊天页卸载而关闭全应用连接。
绑定聊天组件
按交付包说明在页面 usingComponents 注册聊天组件,渲染后取得组件实例并绑定 SDK:
js
// im 是应用当前账号持有的 SDK,chat 是页面中已挂载的组件。
const chat = this.selectComponent('#chat')
chat.bindClient(im)不要把 SDK 对象放入 setData。页面只同步可展示数据,业务登录、路由与账号设置留在宿主层。
缓存与同步
微信适配采用有限预算的持久快照。缓存压力下优先清理可恢复的已确认历史,保留待发与未完成操作;空间不足会返回明确错误。
回前台时重新校验连接并补拉历史,按需恢复本地缓存;小程序后台运行受微信生命周期管理。消息 ID、序号和相关 64 位整数使用十进制字符串,保留完整精度。
平台功能与权限
相册、录音、位置等入口按微信要求在用户主动操作后申请权限,页面加载不应无故触发授权。具体地图、位置选取和文件打开方式以当前交付组件为准,不能照搬原生 App 的任意文件路径和系统调用。
发布前使用正式 AppID 检查合法域名、前后台恢复,以及附件和录音消息的发送、接收与访问。