在 Page 中定义 onShareAppMessage 函数,设置该页面的转发信息。
options 参数说明
参数 | 类型 | 说明 | 最低版本 |
---|---|---|---|
from | String | 转发事件来源。button:页面内转发按钮;menu:右上角转发菜单 | 1.2.4 |
target | Object | 如果 from 值是 button,则 target 是触发这次转发事件的 button,否则为 undefined | 1.2.4 |
字段 | 说明 | 默认值 | 最低版本 |
---|---|---|---|
title | 转发标题 | 当前小程序名称 | |
path | 转发路径 | 当前页面 path ,必须是以 / 开头的完整路径 | |
success | 转发成功的回调函数 | 1.1.0 | |
fail | 转发失败的回调函数 | 1.1.0 | |
complete | 转发结束的回调函数(转发成功、失败都会执行 | 1.1.0 |
回调结果:
回调类型 | errMsg | 说明 |
---|---|---|
success | shareAppMessage:ok | 转发成功 |
fail | shareAppMessage:fail cancel | 用户取消转发 |
fail | shareAppMessage:fail (detail message) | 转发失败,其中 detail message 为详细失败信息 |
success回调参数说明:
参数 | 类型 | 说明 | 最低版本 |
---|---|---|---|
shareTickets | StringArray | shareTicket 数组,每一项是一个 shareTicket ,对应一个转发对象 | 1.1.0 |
示例代码:
Page({
onShareAppMessage: function (res) {
if (res.from === 'button') {
// 来自页面内转发按钮
console.log(res.target)
}
return {
title: '自定义转发标题',
path: '/page/user?id=123',
success: function(res) {
// 转发成功
},
fail: function(res) {
// 转发失败
}
}
}
})
基础库版本 1.1.0 开始支持,低版本需做兼容处理
显示当前页面的转发按钮
OBJECT参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
withShareTicket | Boolean | 否 | 是否使用带 shareTicket 的转发详情 |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
wx.showShareMenu({
withShareTicket: true
})
基础库版本 1.1.0 开始支持,低版本需做兼容处理
隐藏转发按钮
OBJECT参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
wx.hideShareMenu()
基础库 1.2.0 开始支持,低版本需做兼容处理
更新转发属性
OBJECT参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
withShareTicket | Boolean | 否 | 是否使用带 shareTicket 的转发详情 |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码:
wx.updateShareMenu({
withShareTicket: true,
success() {
}
})
基础库 1.1.0 开始支持,低版本需做兼容处理
获取转发详细信息
OBJECT参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
shareTicket | String | 是 | shareTicket |
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
CALLBACK 参数说明:
参数 | 类型 | 说明 |
---|---|---|
errMsg | String | 错误信息 |
encryptedData | String | 包括敏感数据在内的完整转发信息的加密数据,详细见加密数据解密算法 |
iv | String | 加密算法的初始向量,详细见加密数据解密算法 |
encryptedData 解密后为一个 JSON 结构,包含字段如下:
字段 | 说明 |
---|---|
openGId | 群对当前小程序的唯一 ID |
Tip: 如需要展示群名称,可以使用开放数据组件
通常开发者希望转发出去的小程序被二次打开的时候能够获取到一些信息,例如群的标识。现在通过调用 wx.showShareMenu
并且设置 withShareTicket
为 true
,当用户将小程序转发到任一群聊之后,可以获取到此次转发的 shareTicket
,此转发卡片在群聊中被其他用户打开时,可以在 App.onLaunch() 或 App.onShow 获取到另一个 shareTicket
。这两步获取到的 shareTicket
均可通过 wx.getShareInfo() 接口可以获取到相同的转发信息。
基础库 1.2.0 开始支持,低版本需做兼容处理
通过给 button
组件设置属性 open-type="share"
,可以在用户点击按钮后触发 Page.onShareAppMessage()
事件,如果当前页面没有定义此事件,则点击后无效果。相关组件:button
转发按钮,旨在帮助用户更流畅地与好友分享内容和服务。转发,应是用户自发的行为,且在需要时触手可及。开发者在使用时若遵从以下指引,会得到更佳的用户体验。
以上,我们陈列了最重要的几点,如果你有时间,可以完整浏览《设计指南》,相信会有更多的收获。
tip
: 转发图片不能自定义;会取当前页面,从顶部开始,高度为 80% 屏幕宽度的图像作为转发图片。tip
: 转发的调试支持请查看 普通转发的调试支持 和 带 shareTicket 的转发tip
: 只有转发到群聊中打开才可以获取到 shareTickets
返回值,单聊没有 shareTickets
tip
: shareTicket
仅在当前小程序生命周期内有效tip
: 由于策略变动,小程序群相关能力进行调整,开发者可先使用wx.getShareInfo
接口中的群ID进行功能开发。(c) 2024 chaojicainiao.com MIT license