小程序所有页面分享时携带统一的参数(uniapp)

245 阅读1分钟

需求:小程序所有页面分享时携带统一的一个参数

解决:

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出来的值用来合并这个统一的参数