关于小程序转发分享功能,并实现计数埋点方式

前言

之前做的分享都是单页面分享,现在发现公司需要做所有页面的分享,然后指定页面和全局不一样,并且实现记录转发次数和分享者

思路

写一个全局的分享功能,单页面单独去写,

关于分享

去查了相关资料,发现有两种分享可以实现全局分享,单页面特定分享
1、使用page分享,在微信左上角的…出点击分享 2、使用Component组件分享,创建一个button按钮点击分享

关于计数埋点

根据官方的2018年05月16日公告,我们得知分享接口(onShareAppMessage)调用后,将不再返回分享结果事件(success事件)。及用户从小程序、小游戏中分享消息给好友时,开发者将无法获知用户是否分享完成,也无法在分享后立即获得群ID。
但是我们换了个思路去解决

效果

在这里插入图片描述

在这里插入图片描述

使用page分享

全局分享

在app.js处写上以下代码。

~function(){
    
    
  var PageTmp = Page;
  Page = function (pageConfig) {
    
    
    pageConfig = Object.assign({
    
    
      onShareAppMessage:function () {
    
    
        return {
    
    
          title: 'XXX携手优质供应商共建共赢',
          path: "pages/home/index/index",
          imageUrl:'https://626f-boshiwang-xksvq-1303040639.tcb.qcloud.la/shareBSW.png?sign=ad20decb028506624c638e6056c26a00&t=1605510052'
        };
      }
    },pageConfig);
    PageTmp(pageConfig);
  };
}();

单页分享

在单页面的.js处写下以下代码

  onShareAppMessage:function(){
    
    
    return {
    
    
      title: '您的好友分享给您一条需求',
      path: "pages/demand/detailsCL/detailsCL?id="+this.data.codeid,
      imageUrl:'https://626f-boshiwang-xksvq-1303040639.tcb.qcloud.la/shareXq.png?sign=6a19a7f039153ed5903200f3b2f6ae48&t=1605510319'
    }
  },

使用Component组件分享

全局分享

在app.js处放以下代码

!function(){
    
    
  // 获取页面配置进行页面分享配置
  var ComponentTmp = Component;
  Component = function (componentConfig) {
    
    
    // 设置全局默认分享
    let tmpMethods = Object.assign({
    
    
      onShareAppMessage () {
    
    
        return {
    
    
          title: 'XXX携手优质供应商共建共赢',
          path: "pages/home/index/index",
          imageUrl:'https://626f-boshiwang-xksvq-1303040639.tcb.qcloud.la/shareBSW.png?sign=ad20decb028506624c638e6056c26a00&t=1605510052',
        };
      }
    }, componentConfig.methods);
    componentConfig.methods = tmpMethods
    ComponentTmp(componentConfig);
  };
}();

单页面分享

methods: {
    
    
	onShareAppMessage () {
    
    
     return {
    
    
       title: '您的好友分享给您一条需求',
       path: "pages/demand/detailsCL/detailsCL?id="+this.data.codeid,
       imageUrl:'https://626f-boshiwang-xksvq-1303040639.tcb.qcloud.la/shareXq.png?sign=6a19a7f039153ed5903200f3b2f6ae48&t=1605510319'
     };
   },
}

计数埋点

前言我们知道,没有success的回调,没有办法计数
解决思路就是:我们转发的时候,带上shareID,分享页面的type,
当用户点击进来的时候,我们可以监听本地是否由userinfo,如果有,即跑接口,在数据库存储useID,shareID,以及type,并记录成一次有效分享,
毕竟无效分享可以得知谁比较积极,但是有效分享才是公司想要的有意义的数据

猜你喜欢

转载自blog.csdn.net/weixin_43236062/article/details/110132730