用途:指导在微信小程序中开发聊天工具分包,实现从聊天场景进入小程序、向群聊发送消息、选择群成员、发送提醒以及动态消息等能力。
环境要求:基础库 3.7.8+ 支持;Android/iOS 微信 8.0.56+。
配置:在 app.json 中增加 subPackages(root、pages、entry.js、independent、componentFramework 为 glass-easel、renderer 为 skyline)与 chatTools(root、entryPagePath、desc、scopes),并设置 rendererOptions.skyline。entry.js 中可用 wx.getEnterOptionsSync() 获取进入参数。注意分包体积不超过 500KB、必须使用 skyline 渲染、每个小程序目前仅支持配置一个聊天工具。
核心 API:wx.openChatTool 打开聊天工具模式(可传 opengid 或 open_single_roomid,url 必填,chatType 取值 1 微信单聊、2 企业微信单聊、3 普通微信群聊、4 企业微信互通群聊);wx.getApiCategory 判断是否在聊天工具模式(chatTool);wx.navigateBack 退出;wx.getChatToolInfo、wx.getGroupEnterInfo 获取群聊信息;wx.selectGroupMembers 选择成员并返回 group_openid。ID 类型包括 opengid、open_single_roomid、group_openid。
发送到聊天:wx.shareAppMessageToGroup(title 必填)、wx.notifyGroupMembers(title、members、entrancePath 必填,type 为 participate 或 complete)、wx.shareImageToGroup、wx.shareVideoToGroup、wx.shareFileToGroup、wx.shareEmojiToGroup。动态消息需服务端创建 activity_id,前端用 wx.updateShareMenu 声明 isUpdatableMessage、activityId、useForChatTool、chooseType(1 指定成员、2 全部成员)及 templateInfo,服务端 setChatToolMsg 更新状态。
限制:聊天工具模式下不支持普通转发(button open-type=share)、外跳接口和广告组件(ad、ad-custom)。部分 API 有基础库版本要求,低版本需做兼容处理。