广西度易网络科技有限公司
建站热线 建站热线: 18577034138
您的位置:首页 -> 资讯中心 -> 微公众平台/微信小程序

【小程序开发记录】转发功能

2018-11-03 13:55:01  来源:  编辑:admin

好记星不如烂笔头,写一写记录下。

一. 用到的API

转发功能API参考微信官方,列下常用的
onShareAppMessage(options)


在返回值中设置转发的title与页面path,会回调转发成功与失败,js中设置了这个胶囊按键中才会出现“转发”

wx.hideShareMenu(OBJECT)

隐藏胶囊按键里面的“转发”按钮
wx.showShareMenu(OBJECT)
1.显示胶囊按键里的“转发”按钮 2.设置是否使用带shareTicket 的转发(转发到微信群)
wx.getShareInfo(OBJECT)
拿shareTicket 获取微信群的信息
二. 实现步骤
  1. 转发分为页面内button(只能是button)或右上角胶囊按键转发。后者只要添加了前面提到的第一个方法就可以了。而页面内转发要在wxml里这么加(不需要bindtap,点击button会触发onShareAppMessage(options)
  2. 方法
<button class="btnShare" open-type="share"</button>
  1. 在页面onShareAppMessage(options)
  2. 方法调用前添加
wx.showShareMenu({ withShareTicket: true })

withShareTicket参数是设置转发是否携带shareTicket。该参数只有在转发至群组时可以获取到,转发至单聊时无法获取到shareTicket,有啥用后面说。

  1. 无论点击哪种转发按键都会触发onShareAppMessage: function (option)
  2. ,其中参数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

  1. 开发者将shareTicket传入到wx.getShareInfo(OBJECT)
  2. 方法中可以获取到加密数据,解密后群组信息(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则可以做一些其他判断。


上一篇:微信小程序 转发功能的实现

下一篇:微信小程序如何开发卡卷功能

联系我们

官方微博官方微博:http://weibo.com/gxduyi

咨询QQ:304240446咨询QQ:304240446

咨询热线:18577034138咨询热线:18577034138

官方微信:度易网络官方微信:度易网络

扫一扫访问手机版

扫一扫访问手机版

关注微信公众号

关注微信公众号
 
QQ在线咨询
QQ在线咨询
咨询热线-谢经理
18577034138