来源:网络文章列表2019-03-13本文提供了微信分享后的统计数据的解决方案。 最近公司开发微信小程序有一个需求,需要统计某个业务员给用户分享的次数,之前记得微信对于分享这块有个回调函数的,但是貌似现在微信官方为了避免传销式拉人头的分享,已经把分享成功后的回调功能取消。简而言之,就是我们现在是不知道用户的分享动作是取消,还是转发出去。 对于这种情况,我们目前一般的有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.jsApp({ 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); } } }}) |
|