小程序模板网

xiaochun系列教程--微信小程序实现转发

1.当用户将小程序转发到任一群聊之后,可以获取到此次转发的 shareTicket2.此转发卡片在群聊中被其他用户打开时,可以在 App.onLaunch() 或 App.onShow 获取到另一个 shareTicket3.两步获取到的 shareTicket 均可通 ...

 
 
 

1.当用户将小程序转发到任一群聊之后,可以获取到此次转发的 shareTicket 
2.此转发卡片在群聊中被其他用户打开时,可以在 App.onLaunch() 或 App.onShow 获取到另一个 shareTicket 
3.两步获取到的 shareTicket 均可通过 wx.getShareInfo() 接口可以获取到相同的转发信息。

onShareAppMessage(options)函数设置该页面的转发信息。

options参数说明: 
from:转发事件来源。button:页面内转发按钮;menu:右上角转发菜单; 
target:如果 from 值是 button,则 target 是触发这次转发事件的 button,否则为 undefined

自定义字段:

return {
    title: '转发',  // 转发标题(默认:当前小程序名称)
    path: '/pages/index/index', // 转发路径(当前页面 path ),必须是以 / 开头的完整路径
    success(e) {
      // shareAppMessage: ok,
      // shareTickets 数组,每一项是一个 shareTicket ,对应一个转发对象
         // 需要在页面onLoad()事件中实现接口
         wx.showShareMenu({
           // 要求小程序返回分享目标信息
           withShareTicket: true 
         });
    },
    fail(e) {
      // shareAppMessage:fail cancel
      // shareAppMessage:fail(detail message) 
    },
    complete() { }
}

wx.showShareMenu(OBJECT) 带 shareTicket 的转发。

1.在SDK中与真机调试的过程中,都需要设withShareTicket为true,  2.否则在真机的调试过程中,即便选择了转发的群聊,也不会返回shareTicket

  onLoad(e) {
    wx.showShareMenu({
      withShareTicket: true
    })
  }, onShow(e) {
    wx.showShareMenu({
      withShareTicket: true
    })
  },

wx.getShareInfo(OBJECT)获取转发详细信息

if (res.shareTickets) {
  // 获取转发详细信息
  wx.getShareInfo({
    shareTicket: res.shareTickets[0],
    success(res) {
      res.errMsg; // 错误信息
      res.encryptedData;  //  解密后为一个 JSON 结构(openGId    群对当前小程序的唯一 ID)
      res.iv; // 加密算法的初始向量
    },
    fail() {},
    complete() {}
  });
}

小程序在群里被打开后,获取情景值和shareTicket

//app.js
App({
  onLaunch: function (ops) {
    if (ops.scene == 1044) {
      console.log(ops.shareTicket)
    }
  }
})

Bug & Tip

1.页面之间的参数传递,需要在onLoad()函数中接收,onShow()函数中无法接收。  2.获取群聊中被打开的小程序的shareTicket,需要在App.onLaunch() 或 App.onShow()。  页面的生命周期函数中是获取不到的。  3.将转发内容至单个用户时,是无法获取到shareTicket 。



易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/18277.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询