资讯

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

您的位置:首页->资讯中心-> 微信小程序 转发功能的实现
微信小程序 转发功能的实现
2018-11-03 13:56:09 编辑:admin

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

1.当用户将小程序转发到任一群聊之后,可以获取到此次转发的 shareTicket

2.此转发卡片在群聊中被其他用户打开时,可以在 App.onLaunch() 或 App.onShow 获取到另一个 shareTicket

3.两步获取到的 shareTicket 均可通过 wx.getShareInfo() 接口可以获取到相同的转发信息。

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

options参数说明:

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

自定义字段:

  
title: '转发',
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
return
{
// 转发标题(默认:当前小程序名称)
  
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

   
withShareTicket: true
1
2
3
4
5
6
7
8
9
onLoad(e) {
  
wx.showShareMenu({
  
})
 
}, onShow(e) {
  
wx.showShareMenu({
   
withShareTicket: true
  
})
 
},

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

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

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

 
onLaunch: function (ops) {
1
2
3
4
5
6
7
8
//app.js
App({
  
if
(ops.scene == 1044) {
   
console.log(ops.shareTicket)
  
}
 
}
})

Bug & Tip

1.页面之间的参数传递,需要在onLoad()函数中接收,onShow()函数中无法接收。

2.获取群聊中被打开的小程序的shareTicket,需要在App.onLaunch() 或 App.onShow()。 页面的生命周期函数中是获取不到的。

3.将转发内容至单个用户时,是无法获取到shareTicket 。

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

广西度易网络科技有限公司 版权所有 桂ICP备13003037号-3 地址:广西南宁市高新区科园大道33号盛世龙腾A座1211号