wx.offCopyUrl()

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

微信小程序插件:不支持

功能描述

移除用户点击右上角菜单的「复制链接」按钮时触发的事件的全部监听函数

示例代码


  // 绑定分享参数
  wx.onCopyUrl(() => {
    return { query: 'a=1&b=2' }
  })

  // 取消绑定分享参数
  wx.offCopyUrl()

wx.onCopyUrl(function listener)

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

微信小程序插件:不支持

功能描述

监听用户点击右上角菜单的「复制链接」按钮时触发的事件。

参数

function listener

用户点击右上角菜单的「复制链接」按钮时触发的事件的监听函数

参数

Object res
属性 类型 说明 最低版本
query string 用短链打开微信小程序时当前页面携带的查询字符串,默认为空字符串。微信小程序中使用时,应在进入页面时调用 wx.onCopyUrl 自定义 query,退出页面时调用 wx.offCopyUrl,防止影响其它页面。
title string 短链中的自定义标题,显示在微信小程序名称之后。在基础库3.15.1之前,默认是 navigationBarTitleText 的值,在基础库3.15.1及之后,默认为空字符串。 3.15.1
promise Object 如果该参数存在且为有效的 Promise,则最终的 query 和 title 将以该 Promise 的 resolve 结果为准;如果 Promise 在 2 秒内未 resolve 或 reject,则回退使用同步传入的默认参数。 3.16.0

示例代码


  // 基础用法:同步返回分享参数
  wx.onCopyUrl(() => {
    return { query: 'a=1&b=2' }
  })

  // 使用 promise 异步返回分享参数
  wx.onCopyUrl(() => {
    return {
      query: 'a=1',  // 兜底默认参数,promise 超时时使用
      title: '默认标题',
      promise: fetchSomeInfo().then((info) => ({ query: info.query, title: info.title }))
    }
  })

  // 取消绑定分享参数
  wx.offCopyUrl()

wx.shareFileMessage(Object object)

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

以 Promise 风格 调用:支持

微信小程序插件:不支持

微信 鸿蒙 OS 版:支持

功能描述

转发文件到聊天

参数

Object object

属性 类型 默认值 必填 说明
filePath string 是 要分享的文件地址,必须为本地路径或临时路径
fileName string 否 自定义文件名,若留空则使用filePath中的文件名
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码


  // callback 写法
  wx.downloadFile({
    url: URL, // 下载url
    success (res) {
      // 下载完成后转发
      wx.shareFileMessage({
        filePath: res.tempFilePath,
        success() {},
        fail: console.error,
      })
    },
    fail: console.error,
  })

  // async await 写法
  const { tempFilePath } = await wx.downloadFile({
    url: URL, // 下载url
  })
  // 下载完成后转发
  await wx.shareFileMessage({
    filePath: tempFilePath,
  })

wx.shareToOfficialAccount(Object object)

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

以 Promise 风格 调用:不支持

需要页面权限:当前是插件页面时,宿主微信小程序不能调用该接口,反之亦然

微信小程序插件:不支持

功能描述

支持拉起贴图发表页,用户可将图片与文字内容发表为贴图。

参数

Object object

属性 类型 默认值 必填 说明 最低版本
title string 是 贴图的标题
content string 否 贴图的正文
tags Array.<string> 否 贴图的标签,上限10个
images Array.<string> 否 贴图的图片,必须为本地路径或临时路径
recommendPath string 否 贴图链接卡片跳转页面 3.16.1
recommendTitle string 否 贴图链接卡片标题 3.16.1
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
status string 贴图发表状态
postUrl string 贴图发表后的文章链接,仅在success回调中返回,并且只有在发表成功后链接才可访问

示例代码


wx.shareToOfficialAccount({
  title: '标题',
  content: '正文',
  tags: ['标签1', '标签2'],
  success: (res) => {
    // 贴图发表成功时触发
    console.log(res)
  },
  fail: (err) => {
    // 用户主动退出贴图发表页时触发
    console.log(err)
  },
  complete: (res) => {
    // 统计接口总共调用次数
    console.log(res)
  },
})

推荐图标

推荐使用贴图品牌图标作为该功能按钮,可使用下列高清素材:

推荐图标1

推荐图标2

wx.shareVideoMessage(Object object)

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

以 Promise 风格 调用:支持

微信小程序插件:不支持

微信 鸿蒙 OS 版:支持

功能描述

转发视频到聊天

参数

Object object

属性 类型 默认值 必填 说明
videoPath string 是 要分享的视频地址,必须为本地路径或临时路径
thumbPath string 否 缩略图路径,若留空则使用视频首帧
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码


  // callback 写法
  wx.downloadFile({
    url: URL, // 下载url
    success (res) {
      // 下载完成后转发
      wx.shareVideoMessage({
        videoPath: res.tempFilePath,
        success() {},
        fail: console.error,
      })
    },
    fail: console.error,
  })

  // async await 写法
  const { tempFilePath } = await wx.downloadFile({
    url: URL, // 下载url
  })
  // 下载完成后转发
  await wx.shareVideoMessage({
    videoPath: res.tempFilePath,
  })

wx.showShareImageMenu(Object object)

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

以 Promise 风格 调用:支持

微信小程序插件:支持,需要微信小程序基础库版本不低于 2.16.0

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

功能描述

打开分享图片弹窗,可以将图片发送给朋友、分享至朋友圈、收藏或下载

参数

Object object

属性 类型 默认值 必填 说明 最低版本
path string 是 要分享的图片地址,必须为本地路径或临时路径
needShowEntrance boolean true 否 分享的图片消息是否要带微信小程序入口 3.2.0
entrancePath string ” 否 发送给朋友时,微信小程序入口打开微信小程序的路径,如果当前页面允许分享给朋友,则默认为当前页面路径,否则默认为微信小程序首页 3.2.0
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码


wx.downloadFile({
  url: 'https://res.wx.qq.com/wxdoc/dist/assets/img/demo.ef5c5bef.jpg',
  success: (res) => {
    wx.showShareImageMenu({
      path: res.tempFilePath
    })
  }
})

Tips

  1. 从基础库 3.8.2 开始,style 参数废弃
  2. 从基础库 3.8.2 开始,needShowEntrance 参数默认值从 false 改为 true
  3. 从基础库 3.8.2 开始,支持分享至朋友圈,分享至朋友圈的图片不支持带有二维码(可支持微信小程序码)

wx.showShareMenu(Object object)

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

以 Promise 风格 调用:支持

需要页面权限:当前是插件页面时,宿主微信小程序不能调用该接口,反之亦然

微信小程序插件:支持,需要微信小程序基础库版本不低于 2.1.0

在微信小程序插件中使用时,只能在当前插件的页面中调用

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

功能描述

设置右上角点开的详情界面中的分享按钮是否可用

参数

Object object

属性 类型 默认值 必填 说明 最低版本
withShareTicket boolean false 否 是否使用带 shareTicket 的转发详情
menus Array.<string> 否 本接口为 Beta 版本,暂只在 Android 平台支持。需要显示的转发按钮名称列表,默认[‘shareAppMessage’]。按钮名称合法值包含 “shareAppMessage”、”shareTimeline” 两种 2.11.3
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

注意事项

  • “shareAppMessage”表示“发送给朋友”按钮,”shareTimeline”表示“分享到朋友圈”按钮
  • 显示“分享到朋友圈”按钮时必须同时显示“发送给朋友”按钮,显示“发送给朋友”按钮时则允许不显示“分享到朋友圈”按钮

示例代码

wx.showShareMenu({
  withShareTicket: true,
  menus: ['shareAppMessage', 'shareTimeline']
})

wx.updateShareMenu(Object object)

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

以 Promise 风格 调用:支持

需要页面权限:当前是插件页面时,宿主微信小程序不能调用该接口,反之亦然

微信小程序插件:支持,需要微信小程序基础库版本不低于 2.1.0

在微信小程序插件中使用时,只能在当前插件的页面中调用

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

相关文档: 转发、动态消息、微信小程序私密消息

功能描述

更新转发属性

参数

Object object

属性 类型 默认值 必填 说明 最低版本
withShareTicket boolean false 否 是否使用带 shareTicket 的转发详情
isUpdatableMessage boolean false 否 是否是动态消息,详见动态消息 2.4.0
activityId string 否 动态消息的 activityId。通过 updatableMessage.createActivityId 接口获取 2.4.0
toDoActivityId string 否 群待办消息的id,通过toDoActivityId可以把多个群待办消息聚合为同一个。通过 updatableMessage.createActivityId 接口获取。详见群待办消息 2.11.0
templateInfo Object 否 动态消息的模板信息 2.4.0
结构属性 类型 默认值 必填 说明
parameterList Array.<Object> 是 参数列表
结构属性 类型 默认值 必填 说明
name string 是 参数名
value string 是 参数值
templateId string 是 模板ID
isPrivateMessage boolean 否 是否是私密消息。详见 微信小程序私密消息 2.13.0
participant Array.<string> [] 否 参与用户此聊天室下的 group_openid 列表
useForChatTool boolean false 否 聊天工具模式特殊动态消息 3.7.8
chooseType number 1 否 指定成员的方式 3.7.8
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

注意事项

  • bug:在iOS上,如果 withShareTicket 传了 true ,同时 isUpdatableMessage 传了 false,会导致 withShareTicket 失效。解决办法:当 withShareTicket 传了 true 的时候,isUpdatableMessage 传 true 或者不传都可以,但不要传 false。如果需要关掉动态消息设置,则另外单独调用一次 wx.updateShareMenu({ isUpdatableMessage: false }) 即可。

示例代码

wx.updateShareMenu({
  withShareTicket: true,
  success () { }
})
// 转发私密消息
wx.updateShareMenu({
  isPrivateMessage: true,
  activityId: 'xxx',
  templateInfo: {},
  success () { },
  fail () {}
})

wx.enterChatToolMode(Object object)

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

以 Promise 风格 调用:不支持

微信小程序插件:不支持

相关文档: 聊天工具模式

功能描述

进入聊天工具开放能力模式。

  1. 不传入聊天室id列表时,微信会拉起聊天列表让用户选择,用户选择后绑定聊天室进入聊天工具模式。
  2. 传入聊天室id列表时(群聊为opengid),会直接绑定这批聊天室进入。

参数

Object object

属性 类型 默认值 必填 说明
chatToolRooms Array.<string> 否 聊天室 id,不传则拉起群选择框,可以传入多聊群的 opengid 值
singleChatRoom boolean 否 是否单选群聊,true 为单选,false 为多选
selectLimit number 否 多选模式下最多选择的群聊数量
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码


  wx.enterChatToolMode({
    singleChatRoom: false
  }) // 拉起聊天列表选择


  wx.enterChatToolMode({
    chatToolRooms: [`${opengid}],
  })

wx.getChatToolInfo(Object object)

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

以 Promise 风格 调用:支持

微信小程序插件:不支持

相关文档: 聊天工具模式

功能描述

获取聊天工具模式下的群聊信息。

需要注意的是,单聊群和多聊群下返回的群唯一标识是不同的。

  1. 多聊群下返回 opengid
  2. 单聊群下返回 open_single_roomid

同时将返回用户在群(含单聊)下的唯一标识 group_openid。

参数

Object object

属性 类型 默认值 必填 说明
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息
encryptedData string 包括敏感数据在内的完整转发信息的加密数据,详细见加密数据解密算法
iv string 加密算法的初始向量,详细见加密数据解密算法
cloudID string 敏感数据对应的云 ID,开通云开发的微信小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据

示例代码

wx.getChatToolInfo({
  success(res) {
    // res
    {
      errMsg: 'getChatToolInfo:ok',
      encryptedData: '',
      iv: ''
    }
  },
  fail() {

  }
})

敏感数据有两种获取方式,一是使用 加密数据解密算法 。 获取得到的开放数据为以下 json 结构(其中 opengid 为当前群的唯一标识):

{
 "opengid": "OPENGID",       // 多聊群下返回的群唯一标识
 "open_single_roomid": "",   // 单聊群下返回的群唯一标识
 "group_openid": "",         // 用户在当前群的唯一标识
 "chat_type": 3,             // 聊天室类型
}