一、功能介绍
聊天工具模式是为了帮助微信小程序更好与微信聊天结合而推出的模式,可用于实现群问卷、群拼单、群接龙等功能。其与微信小程序普通模式区别在于:
1. 开放更多与聊天紧密结合的能力:
| 能力 | 说明 | 图示 |
|---|---|---|
| 聊天成员相关能力 | 开发者可调用聊天成员选择器并获取成员相关id,通过open-data渲染聊天成员的头像昵称 | ![]() |
| 发送内容到聊天能力 | 开发者可发送文本、提醒、图片、表情、视频等内容类型到聊天中 | ![]() |
| 动态消息能力 | 微信小程序卡片上的辅标题可以动态更新,在用户完成/参与了活动后下发系统消息 | ![]() |
支持有「交易保障」标识的微信小程序,或「社交」、「金融-证券/期货」、「金融-公募基金」、「金融-银行」类目的微信小程序申请相关接口权限。开发者需要登录微信小程序管理后台 ,在「管理-开发管理-其他接口-聊天工具」中申请获得接口权限,审核通过后可使用。
二、开发指南
从基础库 3.12.0 版本开始支持
支持平台:iOS 8.0.65 及以上版本;Android 8.0.65 及以上版本
1. 进入聊天工具模式
开发者调用 wx. enterChatToolMode 后,可选择在 chatToolRooms 传入 opengid 以进入聊天模式,并获得聊天成员相关接口的调用权限;如果未传入 opengid,则将拉起群聊选择器;
开发者可通过 wx.isChatTool 判断当前是否处于聊天工具模式;
聊天工具模式下应使用 group_openid 作为用户唯一标识。
1.1 wx.getGroupEnterInfo
功能描述:进入聊天工具模式前,获取群聊 id 信息
入参:
| 属性 | 类型 | 说明 |
|---|---|---|
| allowSingleChat | boolean | 为 true 时才会返回单聊下的 open_single_roomid |
| needGroupOpenID | boolean | 为 true 时才会返回 group_openid |
返回参数(数据加密返回,解密请参考:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/group/wx.getGroupEnterInfo.html):
| 属性 | 类型 | 说明 |
|---|---|---|
| opengid | string | 群聊唯一标识,绑定的聊天室为群聊时返回 |
| open_single_roomid | string | 单聊唯一标识,绑定的聊天室为单聊时返回 |
| group_openid | string | 当前微信用户在此聊天室下的唯一标识,同一个用户在不同的聊天室下id不同 |
| chat_type | number | 微信聊天类型,1:微信联系人单聊;2:企业微信联系人单聊;3:普通微信群聊;4:企业微信互通群聊 |
1.2 wx.getChatToolInfo
功能描述:进入聊天工具模式后,获取群聊 id 信息
返回参数(数据加密返回,解密请参考:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/group/wx.getGroupEnterInfo.html):
| 属性 | 类型 | 说明 |
|---|---|---|
| opengid | string | 群聊唯一标识,绑定的聊天室为群聊时返回 |
| open_single_roomid | string | 单聊唯一标识,绑定的聊天室为单聊时返回 |
| group_openid | string | 当前微信用户在此聊天室下的唯一标识,同一个用户在不同的聊天室下id不同 |
| chat_type | number | 微信聊天类型,1:微信联系人单聊;2:企业微信联系人单聊;3:普通微信群聊;4:企业微信互通群聊 |
1.3 wx.selectGroupMembers
功能描述:选择聊天室的成员,并返回选择成员的 group-openid。若当前为群聊,则会拉起成员选择器;若当前为单聊,则直接返回对方用户的 group-openid
请求参数:
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
| maxSelectCount | number | 否 | 最多可选人数 |
返回参数:
| 属性 | 类型 | 说明 |
|---|---|---|
| members | string[] | 所选用户在此聊天室下的唯一标识,同一个用户在不同的聊天室下 id 不同 |
1.4 <open-data-list> <open-data-item>
功能描述:用于渲染聊天成员的头像昵称
属性:
<open-data-list>
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 渲染类型,固定为groupMembers |
| members | string[] | 是 | 需要展示的用户此聊天室下的唯一标识列表 |
<open-data-item>
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 开放数据类型,userNickName:用户昵称;userAvatarUrl:用户头像 |
代码示例:
<open-data-list type="groupMembers" members="[groupOpenID1, groupOpenID2]">
<view class="userinfo" slot:index>
<open-data-item class="avatar " type="userAvatar" index="{{index}}" /> <open-data-item class="" type="userNickName" index="{{index}}" />
</view>
</open-data-list>
2. 发送到聊天能力
可支持微信小程序卡片、提醒消息、文本、图片、表情、文件的发送,如果选择了多个群聊,单次仅支持将内容发送到特定的单个群聊中。
2.1 wx.shareAppMessageToGroup
功能描述:将微信小程序卡片发送到绑定的聊天室
请求参数:
| 属性 | 类型 | 必填 | 说明 | 默认值 |
|---|---|---|---|---|
| title | string | 是 | 微信小程序卡片标题 | |
| opengid | string | 否 | 通过 wx.selectGroups 选择聊天后,opengid 为必填;通过wx.selectGroupMembers 选择单个聊天后,opengid 无需填写 | |
| path | string | 否 | 转发路径 | 聊天工具的 entryPagePath |
| imageUrl | string | 否 | 自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径。支持 PNG 及 JPG。显示图片长宽比是 5:4 | 使用默认截图 |
返回参数:
| 属性 | 类型 | 说明 |
|---|---|---|
| errMsg | string | 错误信息 |
2.2 wx.notifyGroupMembers
功能描述:提醒用户完成任务,发送的内容将由微信拼接为:@的成员列表+“请完成:”/”请参与:”+打开微信小程序的文字链,如「@alex @cindy 请完成:团建报名统计」
请求参数:
| 属性 | 类型 | 必填 | 说明 | 默认值 |
|---|---|---|---|---|
| title | string | 是 | 文字链标题 | |
| opengid | string | 否 | 通过 wx.selectGroups 选择聊天后,opengid 为必填;通过wx.selectGroupMembers 选择单个聊天后,opengid 无需填写 | |
| members | string[] | 是 | 需要提醒的用户 group-openid 列表 | |
| entrancePath | string | 是 | 文字链跳转路径 | |
| type | string | 是 | 展示的动词:participate:“请参与”;complete:“请完成” |
返回参数:
| 属性 | 类型 | 说明 |
|---|---|---|
| errMsg | string | 错误信息 |
2.3 form 组件
<form bind:submitToGroup="onSubmitToGroup"> <button form-type="submitToGroup">
功能描述:将输入框内的文本内容发送到绑定的聊天室,可携带返回聊天工具模式的微信小程序的小尾巴
属性:
<form>
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
| bind:submitToGroup | string | 是 | 用户触发发送文本到聊天后会触发的事件 |
<button>
| 属性 | 类型 | 必填 | 说明 | 默认值 |
|---|---|---|---|---|
| form-type | string | 是 | 需填入 submitToGroup,表示将文本发送到聊天 | |
| opengid | string | 否 | 通过 wx.selectGroups 选择聊天后,opengid 为必填;通过wx.selectGroupMembers 选择单个聊天后,opengid 无需填写 | |
| need-show-entrance | boolean | 否 | 是否在文本消息下展示进入微信小程序的小尾巴 | true |
| entrance-path | string | 否 | 小尾巴跳转路径 | 聊天工具的 entryPagePath |
2.4 wx.shareImageToGroup
功能描述:将图片发送到绑定的聊天室,可携带返回聊天工具模式的微信小程序的小尾巴
请求参数:
| 属性 | 类型 | 必填 | 说明 | 默认值 |
|---|---|---|---|---|
| imagePath | string | 是 | 图片路径,可以是本地文件路径或临时路径 | |
| opengid | string | 否 | 通过 wx.selectGroups 选择聊天后,opengid 为必填;通过wx.selectGroupMembers 选择单个聊天后,opengid 无需填写 | |
| needShowEntrance | string | 否 | 是否在图片消息下展示进入微信小程序的小尾巴 | true |
| entrancePath | string | 否 | 小尾巴跳转路径 | 聊天工具的 entryPagePath |
返回参数:
| 属性 | 类型 | 说明 |
|---|---|---|
| errMsg | string | 错误信息 |
2.5 wx.shareEmojiToGroup
功能描述:将表情发送到绑定的聊天室,可携带返回聊天工具模式的微信小程序的小尾巴
请求参数:
| 属性 | 类型 | 必填 | 说明 | 默认值 |
|---|---|---|---|---|
| imagePath | string | 是 | 表情路径,可以是本地文件路径或临时路径 | |
| opengid | string | 否 | 通过 wx.selectGroups 选择聊天后,opengid 为必填;通过wx.selectGroupMembers 选择单个聊天后,opengid 无需填写 | |
| needShowEntrance | string | 否 | 是否在表情消息下展示进入微信小程序的小尾巴 | true |
| entrancePath | string | 否 | 小尾巴跳转路径 | 聊天工具的 entryPagePath |
返回参数:
| 属性 | 类型 | 说明 |
|---|---|---|
| errMsg | string | 错误信息 |
2.6 wx.shareVideoToGroup
功能描述:将视频发送到绑定的聊天室,可携带返回聊天工具模式的微信小程序的小尾巴
请求参数:
| 属性 | 类型 | 必填 | 说明 | 默认值 |
|---|---|---|---|---|
| videoPath | string | 是 | 视频路径,可以是本地文件路径或临时路径 | |
| opengid | string | 否 | 通过 wx.selectGroups 选择聊天后,opengid 为必填;通过 wx.selectGroupMembers 选择单个聊天后,opengid 无需填写 | |
| thumbPath | string | 否 | 缩略图路径,若留空则使用视频首帧 | |
| needShowEntrance | string | 否 | 是否在视频消息下展示进入微信小程序的小尾巴 | true |
| entrancePath | string | 否 | 小尾巴跳转路径 | 聊天工具的 entryPagePath |
返回参数:
| 属性 | 类型 | 说明 |
|---|---|---|
| errMsg | string | 错误信息 |
2.7 wx.shareFileToGroup
功能描述:将文件发送到绑定的聊天室,可携带返回聊天工具模式的微信小程序的小尾巴
请求参数:
| 属性 | 类型 | 必填 | 说明 | 默认值 |
|---|---|---|---|---|
| filePath | string | 是 | 文件路径,可以是本地文件路径或临时路径 | |
| opengid | string | 否 | 通过 wx.selectGroups 选择聊天后,opengid为必填;通过 wx.selectGroupMembers 选择单个聊天后,opengid 无需填写 | |
| needShowEntrance | string | 否 | 是否在文件消息下展示进入微信小程序的小尾巴 | true |
| entrancePath | string | 否 | 小尾巴跳转路径 | 聊天工具的 entryPagePath |
返回参数:
| 属性 | 类型 | 说明 |
|---|---|---|
| errMsg | string | 错误信息 |


