需求:小程序所有页面分享时携带统一的一个参数
解决:
1.在main.js里使用vue.mixin混入
import Vue from 'vue'
Vue.mixin({
onLoad(){
}
})
2.生命周期里获取当前页面的分享参数并且重写分享方法
Vue.mixin({
onLoad(){
// #ifdef MP-WEIXIN
try{
this.$nextTick(()=>{
// 获取当前页面注册的对象
var pages = getCurrentPages();
var curPage = pages[pages.length - 1];
if(!curPage) return
// 获取当前页面onShareAppMessage return出来的值
const newShareObj = curPage && curPage.onShareAppMessage()
if(!newShareObj) return
// 重新设置当前分享的页面path
if(newShareObj.hasOwnProperty('path')){
const {path} = newShareObj;
newShareObj.path = path.indexOf('?') > -1 ? path+'&shareServiceId=111' : path+'?shareServiceId=111'
}
console.log(newShareObj,'newShareObj');
// 重新设置新的分享方法
curPage.onShareAppMessage = () => {
return newShareObj
}
})
}catch(e){
console.log('分享注册失败',e);
}
// #endif
}
})
重点还是获取当前页面****onShareAppMessage return出来的值用来合并这个统一的参数