小程序采坑记(三) 转发
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
})
}