微信小程序 转发分享功能
程序员文章站
2022-06-15 15:36:31
...
转发
获取更多转发信息
通常开发者希望转发出去的小程序被二次打开的时候能够获取到一些信息,例如群的标识。现在通过调用 wx.showShareMenu 并且设置 withShareTicket
为 true
,当用户将小程序转发到任一群聊之后,此转发卡片在群聊中被其他用户打开时,可以在 App.onLaunch 或 App.onShow 获取到一个 shareTicket
。通过调用 wx.getShareInfo 接口传入此 shareTicket
可以获取到转发信息。
页面内发起转发
基础库 1.2.0 开始支持,低版本需做兼容处理。
通过给 button
组件设置属性 open-type="share"
,可以在用户点击按钮后触发 Page.onShareAppMessage
事件,相关组件:button。
<button open-type="share">分享</button>
onShareAppMessage(Object object)
监听用户点击页面内转发按钮(button 组件 open-type="share"
)或右上角菜单“转发”按钮的行为,并自定义转发内容。
注意:只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮
参数 Object object:
参数 | 类型 | 说明 | 最低版本 |
---|---|---|---|
from | String | 转发事件来源。button :页面内转发按钮;menu :右上角转发菜单 |
1.2.4 |
target | Object | 如果 from 值是 button ,则 target 是触发这次转发事件的 button ,否则为 undefined
|
1.2.4 |
webViewUrl | String | 页面中包含web-view组件时,返回当前web-view的url | 1.6.4 |
此事件处理函数需要 return 一个 Object,用于自定义转发内容,返回内容如下:
自定义转发内容 基础库 2.8.1 起,分享图支持云图片。
字段 | 说明 | 默认值 | 最低版本 |
---|---|---|---|
title | 转发标题 | 当前小程序名称 | |
path | 转发路径 | 当前页面 path ,必须是以 / 开头的完整路径 | |
imageUrl | 自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径。支持PNG及JPG。显示图片长宽比是 5:4。 | 使用默认截图 | 1.5.0 |
实例代码:
onShareAppMessage:function(options){
return {
title: '爱心发射', //转发的标题
path: '/pages/img/img', //要发送页面的路径
imageUrl: '../../imgs/1.jpg' //转发时图片的路径,如果没有则是页面信息
}
}
Tips
- 不自定义转发图片的情况下,默认会取当前页面,从顶部开始,高度为 80% 屏幕宽度的图像作为转发图片。
- 转发的调试支持请查看 普通转发的调试支持 和 带 shareTicket 的转发
- 只有转发到群聊中打开才可以获取到
shareTickets
返回值,单聊没有shareTickets
-
shareTicket
仅在当前小程序生命周期内有效 - 由于策略变动,小程序群相关能力进行调整,开发者可先使用 wx.getShareInfo 接口中的群 ID 进行功能开发。
- 微信7.0.12开始,支持群主转发小程序时同时把消息设为该群的群待办消息,群待办消息会以气泡形式出现在聊天窗口底部。默认每次转发一个群待办消息,都会生成一个待办消息气泡。通过 wx.updateShareMenu 接口修改
toDoActivityId
属性可以把多个待办消息聚合为同一个,即转发相同toDoActivityId
的群待办消息,只会出现一个待办消息气泡。toDoActivityId
需要在转发前通过 updatableMessage.createActivityId 接口创建。
下一篇: python 画混淆矩阵