微信小程序> 微信小程序转发功能详解

微信小程序转发功能详解

浏览量:523 时间: 来源:shen_bu_fei

一、首先讲解一下需要用到的API

  • Page.onShareAppMessage()
    设置右上角“转发”配置,及转发后回调函数返回 shareTicket 票据
  • wx.showSahreMenu()  
    显示当前页面的转发按钮
  • wx.hideShareMenu()  
    隐藏转发按钮
  • wx.getShareInfo()  
    获取转发详细信息

二、流程

 

转发前配置—-转发时—-转发到群组后打开—-二次转发

(1)页面内按钮转发

button type="warn" open-type="share" data-tag="share1" id="btn_share1"发送微信给好友/button

(2)或者右上角转发

三、代码实现

(1)转发前配置 
   在页面 onLoad 方法添加

 wx.showShareMenu({     withShareTicket: true })

withShareTicket 为 true 时,表示允许转发时是否携带 shareTicket。
shareTicket是获取转发目标群信息的票据,只有拥有shareTicket才能拿到群信息,用户每次转发都会生成对应唯一的shareTicket
如果转发的对象是个人的话,就不会有shareTicket这个参数

(2)转发时获取群信息 
当某个小程序被转发到群组后,开发者想获取到转发目标群组信息,将用户和群组做某种绑定关系(openId + openGid)

 onShareAppMessage:function(options){     let that = this;     return {         title:'我是转发的东西',      //'此为转发页面所显示的标题'         desc: '江湖救急,还请贵人伸手相助啊!',      //'此为转发页面的描述性文字'         path:'pages/api/api',        //'此为转发给微信好友或微信群后,对方点击后进入的页面链接,可以根据自己的需求添加参数'         success:function(res){              let shareTickets = '' ;             '//转发到群 会有res.shareTickets  转发到个人无res.shareTickets'              let shareTickets = res.shareTickets              if (shareTickets && shareTickets.length===0){                    return false;              }              wx.getShareInfo({                  shareTicket:shareTicket[0],                  success:function(res){                      let encryptedData = res.encryptedData                      let iv = res.iv                  }              })        }     } }

shareTickets是一个数组,每一项是一个shareTickets,对应一个转发对象,转发给用户不会包含shareTickets
拿到shareTickets后,使用wx.getShareInfo()获取已经加密的encryptedData用户信息和向量IV

(3)转发到群组后打开 
用户将小程序转发到微信群组后,群成员打开小程序,通过 shareTicket,开发者就能将群成员和群组绑定起来(openId + openGid).

 Page({    onLoad: function(opt) {        '/** 判断场景值,1044 为转发场景,包含shareTicket 参数         在群组中打开小程序,页面onLoad 或 onShow 方法包含 scene 和 shareTicket,需要判断 scene 是否为1044,如果不是则不包含 opt 中 shareTicket 参数*/'        if (opt.scene == 1044) {            wx.getShareInfo({                shareTicket: opt.shareTicket,                success: function(res){                    var encryptedData = res.encryptedData;                    var iv = res.iv;                }            })        }    }})

(4)二次转发
二次转发重复前3个步骤 

版权声明

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

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

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