微信小程序 转发功能的实现
1.当用户将小程序转发到任一群聊之后,可以获取到此次转发的 shareTicket
2.此转发卡片在群聊中被其他用户打开时,可以在 App.onLaunch() 或 App.onShow 获取到另一个 shareTicket
3.两步获取到的 shareTicket 均可通过 wx.getShareInfo() 接口可以获取到相同的转发信息。
onShareAppMessage(options)函数设置该页面的转发信息。
options参数说明:
from:转发事件来源。button:页面内转发按钮;menu:右上角转发菜单;
target:如果 from 值是 button,则 target 是触发这次转发事件的 button,否则为 undefined
自定义字段:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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
|
1
2
3
4
5
6
7
8
9
|
onLoad(e)
{
wx.showShareMenu({
withShareTicket:true
})
},
onShow(e) {
wx.showShareMenu({
withShareTicket:true
})
},
|
wx.getShareInfo(OBJECT)获取转发详细信息
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
if(res.shareTickets)
{
//
获取转发详细信息
wx.getShareInfo({
shareTicket:
res.shareTickets[0],
success(res)
{
res.errMsg;//
错误信息
res.encryptedData;//
解密后为一个 JSON 结构(openGId 群对当前小程序的唯一 ID)
res.iv;//
加密算法的初始向量
},
fail()
{},
complete()
{}
});
}
|
小程序在群里被打开后,获取情景值和shareTicket
|
1
2
3
4
5
6
7
8
|
//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 。
以上就是微信小程序 转发功能 的实现,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
如果以上文章您比较满意,请帮忙扫码推荐一下下面的“短信定时提醒”小程序,谢谢!
