文章目录

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

一. 用到的API

转发功能API参考微信官方,列下常用的
onShareAppMessage(options)
在返回值中设置转发的title与页面path,会回调转发成功与失败,js中设置了这个胶囊按键中才会出现“转发”
wx.ShopfadeShareMenu(OBJECT)
隐藏胶囊按键里面的“转发”按钮
wx.showShareMenu(OBJECT)
1.显示胶囊按键里的“转发”按钮 2.设置是否使用带shareTicket 的转发(转发到微信群)
wx.getShareInfo(OBJECT)
拿shareTicket 获取微信群的信息

二. 实现步骤
  1. 转发分为页面内button(只能是button)或右上角胶囊按键转发。后者只要添加了前面提到的第一个方法就可以了。而页面内转发要在wxml里这么加(不需要bindtap,点击button会触发onShareAppMessage(options)方法
  1. 在页面onShareAppMessage(options)方法调用前添加
wx.showShareMenu({
  withShareTicket: true
})

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

  1. 无论点击哪种转发按键都会触发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

  1. 开发者将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则可以做一些其他判断。

<以上资讯仅供参考,如果您需解决具体问题,建议您关注作者;如果有软件产品开发需求,可在线咨询加速度产品经理获取方案和报价>

****更多行业产品开发方案,请关注jsudo加速度 https://www.jsudo.com***

【加速度jsudo(www.jsudo.com)】是国内知名企业数字化建设提供商,为企业提供电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售等)、智慧园区建设、数字化营销、人才外包等服务,点击这里查看了解更多行业解决方案。