小程序采坑记(三) 转发

1.右上角按钮触发转发

在小程序的右上角有三个小点,当在js中设置了

onShareAppMessage(options)方法之后就可以转发了。默认会取当前页面,从顶部

开始,高度为 80% 屏幕宽度的图像作为转发图片。

2.页面内发起转发

通过给 button 组件设置属性 open-type=“share”,然后在js的page()里面加上

onShareAppMessage()事件,就可以触发转发事件了。

但是有时候我们有需求知道转发后,群组的信息,则需要加上微信接口

wx.showShareMenu()。

withShareTicket参数是设置转发是否携带shareTicket。该参数只有在转发至群组时可以获取到。

开发者将shareTicket传入到wx.getShareInfo(OBJECT)方法中可以获取到加密数

据,解密后群组信息(openGId),然后通过gid与开放组件open-data可以让小程序在

微信群中增加不一样的玩法。shareTicket有两种获取方式。

(1)用户转发成功后的success回调函数中。

(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;
                }
            })
        }

看一下参数表。
小程序采坑记(三) 转发

需要注意一下:

不自定义转发图片的情况下,默认会取当前页面,从顶部开始,高度为 80% 屏幕

宽度的图像作为转发图片。

但是有时候我们需要自定义转发信息。

 onShareAppMessage: function (object) {
    console.log(object)
    wx.showShareMenu(
      {withShareTicket: true}
    )
    if(object.from == 'button'){
      return {
        title: app.globalData.userInfo.nickName+'邀请你成为握握会员,点击注册!', //转发的标题
        path: '/pages/login/login?inviterId=' + app.globalData.userInfo.memberId,  //转发的路径,即转发后,用户点击小程序后进入的页面
        imageUrl: '/images/card.png'   //转发的图片,
         success:function(){

        },
        fail:function(){
          
        }
      }
    }
  },

无论点击哪种转发按键都会触发onShareAppMessage: function (object),其中参数

object.from可以区别是页面定义button转发还是胶囊按键转发。

这里的path路径可以携带参数,在用户点击小程序后,可以在相应的页面的onload

方法中获取。我这里就是login页面。

 onLoad: function (options) {
    var inviterId = options.inviterId   //获取转发路径携带的参数
    if (inviterId == undefined) {
      inviterId = ''
    }
    this.setData({
      inviterId: inviterId
    })
    }