欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

微信小程序 转发功能的实现

程序员文章站 2022-05-14 19:29:49
微信小程序 转发功能的实现 1.当用户将小程序转发到任一群聊之后,可以获取到此次转发的 shareticket 2.此转发卡片在群聊中被其他用户打开时,可以在 a...

微信小程序 转发功能的实现

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 。

以上就是微信小程序 转发功能 的实现,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!