微信小程序> 微信小程序——转发功能踩坑(辨别到群与个人、多个转发按钮、转发带参数)总结

微信小程序——转发功能踩坑(辨别到群与个人、多个转发按钮、转发带参数)总结

浏览量:467 时间: 来源:鱼丸粗面不要香菜

小程序的转发功能已经封装好了,可以通过在 Page 中定义 onShareAppMessage 函数,设置该页面的转发信息。
eg:
wxml

<button open-type="share">转发</button>

js

Page({  onShareAppMessage: function (res) {    return {      title: '自定义转发标题',      path: '/page/user?id=123',      success: function(res) {        // 转发成功      },      fail: function(res) {        // 转发失败      }    }  }})

以上就是一个简单的转发按钮,触发后可以调用onShareAppMessage函数来进行转发,转发的小页面可以在函数中进行定义。
这些在官方文档中都有而且很详细,但是我在开发的时候还是遇到了一些问题,下面来进行一些总结。

1、辨别转发到个人还是群

在做小程序的时候,产品有个需求是要判别是否转发到群,针对群和个人进行不同的反馈。
想要获取到转发信息的话需要在js中写

wx.showShareMenu({  withShareTicket: true})

开启了withShareTicket之后,如果转发在群里的话,在转发之后成功的回调函数中可以获取到shareTickets
shareTickets是一个数组,可以判断shareTickets的有无来判断是转发到群里还是个人

2、多个转发按钮

当一个页面中有多个转发的按钮的话,每个按钮的转发页面又有所不同的时候。就要在onShareAppMessage函数中进行单独的设置。
onShareAppMessage函数中有options 参数,options 参数里面有这触发该函数的来源
options 中的from参数表示转发事件来源。button:页面内转发按钮;menu:右上角转发菜单。
如果是button的话还可以通过button中的target参数来判断是哪一个button触发的,可以获取到button的id或者class。
这样就可以对不同的按钮来设置不同的转发页面
eg:

Page({  onShareAppMessage: function (res) {    //button触发    if (res.from === 'button') {       let target_id = res.target.id;      //id为btn1的button触发      if (target_id === "btn1") {        return {          title: '转发一',          path: '/page/index',          success: function(res) {            // 转发成功          },          fail: function(res) {            // 转发失败          }        }      //id为btn2的button触发      }else if((target_id === "btn2")){        return {          title: '转发二',          path: '/page/user',          success: function(res) {            // 转发成功          },          fail: function(res) {            // 转发失败          }        }      }    //menu触发    }else if (res.from === 'menu') {        return {          title: 'menu转发',          path: '/page/user',          success: function(res) {            // 转发成功          },          fail: function(res) {            // 转发失败          }        }    }  }})

注:menu的转发要单独进行设置的

3、转发带参数

在转发的时候,如果需要在别的用户点击转发进入小程序的时候带有参数的话,可以通过在onShareAppMessage函数中带入所需的值,进行转发

Page({  onShareAppMessage: function (res) {    let sendinfo = {      num: 1,      nickName: "jack",    }    let str = JSON.stringify(sendinfo);    return {      title: nickName + '向你分享了小程序',      path: '/page/user?sendinfo=' + sendinfo,      success: function(res) {        // 转发成功      },      fail: function(res) {        // 转发失败      }    }  }})

现在点击这个转发卡片就后,在转发路径地址的页面中就可以获取到带入的值了

Page({  data:{  }  onLoad: function (option) {    let sendinfo = option.sendinfo ;  }})

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎