wechat-chat-tool

微信小程序聊天工具开发指南。当开发聊天工具分包、配置 chatTools、发送消息到群聊、动态消息、获取群成员信息、wx.openChatTool、wx.getChatToolInfo 时使用。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "wechat-chat-tool" with this command: npx skills add dafang/taro-weapp-plugin/dafang-taro-weapp-plugin-wechat-chat-tool

微信小程序聊天工具开发指南

基础库 3.7.8+ 支持,Android/iOS 微信 8.0.56+

快速配置

app.json 配置示例

{
  "subPackages": [
    {
      "root": "packageChatTool",
      "pages": ["pages/entry/index"],
      "entry": "entry.js", // 独立分包入口文件(必须)
      "independent": true,
      "componentFramework": "glass-easel",
      "renderer": "skyline"
    }
  ],
  "chatTools": [{
    "root": "packageChatTool",
    "entryPagePath": "pages/entry/index",
    "desc": "功能描述",
    "scopes": []
  }],
  "rendererOptions": {
    "skyline": {
      "disableABTest": true,
      "defaultDisplayBlock": true,
      "defaultContentBox": true
    }
  }
}

其中 entry.js 的代码通常:

// 独立分包入口文件
// 用于聊天工具模式的初始化

const enterOptions = wx.getEnterOptionsSync()
console.log('[ChatTool Entry] Enter options:', enterOptions)

注意事项:

  • 分包体积不超过 500KB
  • 必须使用 skyline 渲染
  • 每个小程序目前仅支持配置一个聊天工具

核心 API

进入/退出聊天模式

API用途
wx.openChatTool打开聊天工具模式(可传入 opengid 或 open_single_roomid)
wx.getApiCategory判断是否在聊天工具模式(apiCategory === 'chatTool')
wx.navigateBack退出聊天工具模式

获取聊天信息

API用途
wx.getChatToolInfo在聊天工具分包内获取绑定群聊信息
wx.getGroupEnterInfo进入前获取群聊 id 信息
wx.selectGroupMembers选择聊天室成员,返回 group_openid

ID 类型

  • opengid: 群聊唯一标识
  • open_single_roomid: 单聊唯一标识
  • group_openid: 用户在此聊天室下的唯一标识

发送到聊天

API用途
wx.shareAppMessageToGroup发送小程序卡片
wx.notifyGroupMembers发送提醒消息(@成员 + 任务)
wx.shareImageToGroup发送图片
wx.shareVideoToGroup发送视频
wx.shareFileToGroup发送文件
wx.shareEmojiToGroup发送表情

动态消息

  1. 服务端创建 activity_id
  2. 前端 wx.updateShareMenu 声明动态消息
  3. 服务端 setChatToolMsg 更新状态
wx.updateShareMenu({
  withShareTicket: true,
  isUpdatableMessage: true,
  activityId: "xxx",
  useForChatTool: true,
  chooseType: 1, // 1=指定成员, 2=全部成员
  participant: members,
  templateInfo: {
    templateId: "4A68CBB88A92B0A9311848DBA1E94A199B166463", // 完成类
    // 或 '2A84254B945674A2F88CE4970782C402795EB607' 参与类
  },
});

禁用能力

聊天工具模式下不支持:

  • 普通转发(button open-type=share)
  • 外跳接口(navigateToMiniProgram 等)
  • 广告组件(ad、ad-custom)

7. 聊天工具核心API详解

wx.openChatTool

打开聊天工具。

参数

Object object
属性类型默认值必填说明
urlstring聊天工具分包内的页面路径
roomidstring聊天室id,不传则拉起群选择框,可以传入多聊群的 opengid 值,或者单聊群的 open_single_roomid 值
chatTypenumber群聊类型
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
object.chatType 合法值
说明
1微信联系人单聊
2企业微信联系人单聊
3普通微信群聊
4企业微信互通群聊

示例代码

wx.openChatTool({
  url: "pages/chat/index", // 示例路径
  chatType: 1, // 微信联系人单聊
  success(res) {
    console.log("打开聊天工具成功", res);
  },
  fail(err) {
    console.error("打开聊天工具失败", err);
  },
});

wx.getApiCategory

wx.getApiCategory()

基础库 2.22.1 开始支持,低版本需做 兼容处理

获取当前小程序的 API 类别。

返回值
string

当前 API 类别。

合法值

说明
default默认类别
nativeFunctionalized原生功能化,视频号直播商品、商品橱窗等场景打开的小程序
browseOnly仅浏览,朋友圈快照页等场景打开的小程序
embedded内嵌,通过打开半屏小程序能力打开的小程序
chatTool聊天工具打开小程序
示例代码
const apiCategory = wx.getApiCategory();
console.log(apiCategory);

wx.shareAppMessageToGroup

wx.shareAppMessageToGroup(Object object)

基础库 3.7.12 开始支持,低版本需做 兼容处理

转发小程序卡片到聊天。

参数
Object object
属性类型默认值必填说明
titlestring转发标题
pathstring当前页面转发路径,必须是以 / 开头的完整路径,默认为当前页面
imageUrlstring截图自定义图片路径,支持 PNG 及 JPG,显示图片长宽比是 5:4,默认使用截图
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
示例代码
wx.shareAppMessageToGroup({
  title: "分享标题",
  path: "/path/to/page",
  imageUrl: "",
});

wx.shareVideoToGroup

wx.shareVideoToGroup(Object object)

分享视频到聊天。

参数
Object object
属性类型默认值必填说明
videoPathstring要分享的视频地址,必须为本地路径或临时路径
thumbPathstring缩略图路径,若留空则使用视频首帧
needShowEntrancebooleantrue分享的图片消息是否要带小程序入口
entrancePathstring''从消息小程序入口打开小程序的路径,默认为聊天工具启动路径
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
示例代码
wx.shareVideoToGroup({
  videoPath: "path/to/video.mp4",
  thumbPath: "path/to/thumb.png",
  needShowEntrance: true,
  success(res) {
    console.log("分享视频成功", res);
  },
  fail(err) {
    console.error("分享视频失败", err);
  },
});

wx.shareImageToGroup

wx.shareImageToGroup(Object object)

分享图片到聊天。

参数
Object object
属性类型默认值必填说明
imagePathstring要分享的图片地址,必须为本地路径或临时路径
needShowEntrancebooleantrue分享的图片消息是否要带小程序入口
entrancePathstring''从消息小程序入口打开小程序的路径,默认为聊天工具启动路径
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
示例代码
wx.shareImageToGroup({
  imagePath: "path/to/image.png",
  needShowEntrance: true,
  success(res) {
    console.log("分享图片成功", res);
  },
  fail(err) {
    console.error("分享图片失败", err);
  },
});

wx.shareEmojiToGroup

wx.shareEmojiToGroup(Object object)

分享表情到聊天。

参数
Object object
属性类型默认值必填说明
imagePathstring要分享的表情地址,必须为本地路径或临时路径
needShowEntrancebooleantrue分享的表情消息是否要带小程序入口
entrancePathstring''从消息小程序入口打开小程序的路径,默认为聊天工具启动路径
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
示例代码
wx.shareEmojiToGroup({
  imagePath: "path/to/image.png",
  needShowEntrance: true,
  success(res) {
    console.log("分享表情成功", res);
  },
  fail(err) {
    console.error("分享表情失败", err);
  },
});

wx.selectGroupMembers

wx.selectGroupMembers(Object object)

从群组中选择成员。

参数
Object object
属性类型默认值必填说明
maxSelectCountnumber最多可选人数
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
object.success 回调函数

####### 参数

######## Object res

属性类型说明
membersArray.<string>所选用户在此聊天室下的唯一标识,同一个用户在不同的聊天室下id不同
示例代码
wx.selectGroupMembers({
  maxSelectCount: 10,
  success(res) {
    console.log("选择成员成功", res.members);
  },
  fail(err) {
    console.error("选择成员失败", err);
  },
});

wx.notifyGroupMembers

wx.notifyGroupMembers(Object object)

发送消息提醒群成员。

参数
Object object
属性类型默认值必填说明
titlestring文字链标题,发送的内容将由微信拼接为:@的成员列表+“请完成:”/"请参与:"+打开小程序的文字链,如「@alex @cindy 请完成:团建报名统计」。
membersArray.<string>需要提醒的用户 group_openid 列表
entrancePathstring文字链跳转路径
typestringcomplete展示的动词
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
object.type 合法值
说明
participate请参与
complete请完成
示例代码
wx.notifyGroupMembers({
  title: "团建报名统计",
  members: ["openid1", "openid2"],
  entrancePath: "/pages/index/index",
  type: "complete",
  success(res) {
    console.log("提醒成功", res);
  },
  fail(err) {
    console.error("提醒失败", err);
  },
});

完整文档

详见 reference.md

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

react-to-taro

No summary provided by upstream source.

Repository SourceNeeds Review
General

weapp-share-timeline

No summary provided by upstream source.

Repository SourceNeeds Review
General

planning-with-files

No summary provided by upstream source.

Repository SourceNeeds Review
General

Speech Writer

演讲稿(TED风格)、婚礼致辞、商务演讲、励志演讲、祝酒词、演讲大纲。Speech writing for TED-style talks, wedding speeches, business presentations, motivational speeches, toasts, and outlines....

Registry SourceRecently Updated