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