小程序分享
- 前言
 - 思路
 - 关于分享
 - 关于计数埋点
 
- 效果
 - 使用page分享
 - 全局分享
 - 单页分享
 
- 使用Component组件分享
 - 全局分享
 - 单页面分享
 
- 计数埋点
 
前言
之前做的分享都是单页面分享,现在发现公司需要做所有页面的分享,然后指定页面和全局不一样,并且实现记录转发次数和分享者
思路
写一个全局的分享功能,单页面单独去写,
关于分享
去查了相关资料,发现有两种分享可以实现全局分享,单页面特定分享
 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 = tmpMethodsComponentTmp(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,并记录成一次有效分享,
 毕竟无效分享可以得知谁比较积极,但是有效分享才是公司想要的有意义的数据











