微信小程序 转发功能的实现
微信小程序转发功能的实现
1.当用户将小程序转发到任一群聊之后,可以获取到此次转发的shareTicket
2.此转发卡片在群聊中被其他用户打开时,可以在App.onLaunch()或App.onShow获取到另一个shareTicket
3.两步获取到的shareTicket均可通过wx.getShareInfo()接口可以获取到相同的转发信息。
onShareAppMessage(options)函数设置该页面的转发信息。
options参数说明:
from:转发事件来源。button:页面内转发按钮;menu:右上角转发菜单;
target:如果from值是button,则target是触发这次转发事件的button,否则为undefined
自定义字段:
return{ title:'转发',//转发标题(默认:当前小程序名称) path:'/pages/index/index',//转发路径(当前页面path),必须是以/开头的完整路径 success(e){ //shareAppMessage:ok, //shareTickets数组,每一项是一个shareTicket,对应一个转发对象 //需要在页面onLoad()事件中实现接口 wx.showShareMenu({ //要求小程序返回分享目标信息 withShareTicket:true }); }, fail(e){ //shareAppMessage:failcancel //shareAppMessage:fail(detailmessage) }, complete(){} }
wx.showShareMenu(OBJECT)带shareTicket的转发。
1.在SDK中与真机调试的过程中,都需要设withShareTicket为true,
2.否则在真机的调试过程中,即便选择了转发的群聊,也不会返回shareTicket
onLoad(e){ wx.showShareMenu({ withShareTicket:true }) },onShow(e){ wx.showShareMenu({ withShareTicket:true }) },
wx.getShareInfo(OBJECT)获取转发详细信息
if(res.shareTickets){ //获取转发详细信息 wx.getShareInfo({ shareTicket:res.shareTickets[0], success(res){ res.errMsg;//错误信息 res.encryptedData;//解密后为一个JSON结构(openGId群对当前小程序的唯一ID) res.iv;//加密算法的初始向量 }, fail(){}, complete(){} }); }
小程序在群里被打开后,获取情景值和shareTicket
//app.js App({ onLaunch:function(ops){ if(ops.scene==1044){ console.log(ops.shareTicket) } } })
Bug&Tip
1.页面之间的参数传递,需要在onLoad()函数中接收,onShow()函数中无法接收。
2.获取群聊中被打开的小程序的shareTicket,需要在App.onLaunch()或App.onShow()。页面的生命周期函数中是获取不到的。
3.将转发内容至单个用户时,是无法获取到shareTicket。
以上就是微信小程序转发功能的实现,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!