微信小程序如何知道分享是否成功的解决方案
本文提供了微信分享后的统计数据的解决方案。
最近公司开发微信小程序有一个需求,需要统计某个业务员给用户分享的次数,之前记得微信对于分享这块有个回调函数的,但是貌似现在微信官方为了避免传销式拉人头的分享,已经把分享成功后的回调功能取消。简而言之,就是我们现在是不知道用户的分享动作是取消,还是转发出去。
对于这种情况,我们目前一般的有2种策略可以实施。
1、如果统计要求不是很严格,那么不管分享成功还是取消,只要点击了分享,就视为分享成功。
2、第二种则可以精确统计。只有分享到群里或者朋友,有用户打开后,通过ShareTicket拿用户信息,则判断分享成功,否则都是分享失败。
第一种做法比较简单
Page({
onShareAppMessage: function () {
const that = this
// 此处发送统计请求
wx.request({
url: globalData.apiDomainZt + 'xcx/news/flash_share',
data: {
uid: globalData.uid
},
header: globalData.postHeader,
success (res) {
console.log('', res)
}
})
return {
title: '我的顾问',
imageUrl: '',
path: '/pages/index/index,
success () {
console.log('新版微信此处已经不会再执行了', res)
}
};
}
})
第二种方案:
// 页面入口页 App.js
App({
onShow: function (ops) {
let that = this;
// 分享统计放到此处的目的是因为热启动会不走onload,导致统计不准确。
if (ops.scene == 1044) {
// 分享数据统计
wx.getShareInfo({
shareTicket: ops.shareTicket,
success: function(res){
var encryptedData = res.encryptedData;
var iv = res.iv;
if (ops.shareTicket != false) {
wx.getShareInfo({
shareTicket: ops.shareTicket,
success: function (res) {
var encryptedData = res.encryptedData;
var iv = res.iv;
// 发送请求,后台解析出分享信息
wx.request({
url: that.globalData.apiDomainZt + 'xcx/login/xcx',
data: {
encry: encryptedData,
iv: iv,
key: that.globalData.sessionKey,
tid: ops.query.tid // 推广者的ID
},
method: 'POST',
header: that.globalData.postHeader,
success: function(res) {
// 成功后的逻辑处理
},
fail: function (res) {
// console.log('用户打开', res)
}
})
}
})
}
}
})
}
}
})
// 分享页的代码
Page({
onLaunch: function () {
// 设置分享时带上分享信息
wx.showShareMenu({
withShareTicket: true
})
},
onShareAppMessage(res) {
return {
title: '转发时显示的标题',
path: '/pages/index/index?tid=推广者ID', // 转发的页面路径
success: res = >{
},
fail: () = >{
console.log('--- 转发失败 ---', path);
}
}
}
})
至于选择那种方法需要和产品沟通了。这是我想的2种方案,如果大家有其他的好的方案,欢迎留言.....
版权声明
本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。
评论