分享

微信小程序如何知道分享是否成功的解决方案

 文炳春秋 2020-09-08

来源:网络文章列表

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);        }      }    }})

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多