以技术研发为导向 助力企业加速数字化转型
好记星不如烂笔头,写一写记录下。
转发功能API参考微信官方,列下常用的
onShareAppMessage(options)
隐藏胶囊按键里面的“转发”按钮
wx.showShareMenu(OBJECT)
1.显示胶囊按键里的“转发”按钮 2.设置是否使用带shareTicket 的转发(转发到微信群)
wx.getShareInfo(OBJECT)
拿shareTicket 获取微信群的信息
转发分为页面内button(只能是button)或右上角胶囊按键转发。后者只要添加了前面提到的第一个方法就可以了。而页面内转发要在wxml里这么加(不需要bindtap,点击button会触发onShareAppMessage(options)
方法
<button class="btnShare" open-type="share"
在页面onShareAppMessage(options)
方法
添加
wx.showShareMenu({ withShareTicket: true })
withShareTicket参数是设置转发是否携带shareTicket。该参数只有在转发至群组时可以获取到,转发至单聊时无法获取到shareTicket,有啥用后面说。
无论点击哪种转发按键都会触发onShareAppMessage: function (option)
,其中参数option.from
可以区别是页面定义button转发还是胶囊按键转发 onShareAppMessage: function (option) { var shareTitle; if (option.from === 'button') { // 来自页面内转发按钮 shareTitle = '这是来自button的转发'; }else { shareTitle = '这是来自胶囊按键的转发'; } return { title: shareTitle, path: '/parts/xxx', success: function(res) { res.shareTickets }, fail: function(res) { console.log(res) } } }
在后面的return中设置好title,path,转发成功或失败会回调相应block
开发者将shareTicket传入到wx.getShareInfo(OBJECT)
方法中可以获取到加密数据,解密后群组信息(openGId),然后通过gid与开放组件open-data可以让小程序在微信群中增加不一样的玩法。shareTicket有两种获取方式。
(1)用户转发成功后的block参数(见上面代码)。
(2)用户收到转发卡片启动小程序的onLaunch: function(options)或onShow: function(options)
方法(见下面代码)。 onLaunch: function(opt) {//1044转发场景值if (opt.scene == 1044) { wx.getShareInfo({shareTicket: opt.shareTicket; success: function(res){var encryptedData = res.encryptedData;var iv = res.iv; } }) }
其中success块返回值即为加密数据。解密算法见微信官方
需求并没有增加群组玩法,并没有过多关注openGid,后面有机会可以试一试,用户点击卡片启动小程序时,由于只是分享一个页面,导航层级会发生变化,若不需要获取shareTicket则可以做一些其他判断。
上一篇:微信小程序如何开发卡卷功能
下一篇:微信小程序 转发功能的实现

