封裝的分享方法
1 function share(o,isDebug = false ) { 2 //路徑 3 let url = o.url || getCurrentPages()[getCurrentPages().length - 1].route; 4 5 //當前路徑所帶參數 6 let urlParams = getCurrentPages()[getCurrentPages().length - 1].options; 7 8 isDebug&&console.log(`當前路徑所帶參數:${JSON.stringify(urlParams)}`) 9 10 //傳進來的參數 11 let params = o.params || {}; 12 13 isDebug&&console.log(`傳進來的參數:${JSON.stringify(params)}`) 14 15 //當前路徑所帶參數 合並 傳進來的參數 16 let mergeParams = Object.assign(urlParams, params); 17 18 isDebug&&console.log(`合並后的參數:${JSON.stringify(mergeParams)}`) 19 20 //最終參數 (根據是否合並(isMerge)決定最終路徑上傳遞的參數) 21 let resultParam = o.isMerge === true ? mergeParams : params; 22 23 //url與最終參數的結合路徑 24 let path = (() => { 25 let len = Object.keys(resultParam).length; 26 if (len) { 27 let res = "" 28 for (let k in resultParam) { 29 res += `&${k}=${resultParam[k]}` 30 } 31 return url + '?' + res.substring(1) 32 } else { 33 return url 34 } 35 })() 36 37 isDebug&&console.log(` 38 ----分享信息確認---- 39 40 是否跳轉其他頁面:${!!o.url ? o.url : !!o.url} 41 42 是否設置分享顯示的圖片:${!!o.imgUrl ? o.imgUrl : !!o.imgUrl} 43 44 是否合並了參數:${!!o.isMerge} 45 46 分享的最終路徑:${path} 47 `) 48 49 return o.imgUrl ? { title: o.title, path, imageUrl: o.imgUrl } : { title: o.title, path } 50 }
參數說明:share方法接收兩個參數,第一個參數是一個對象,第二個參數是一個布爾值,默認是 false,表示不開啟 debug,控制台不打印你分享的數據信息
第一個參數是一個對象表示你傳入的分享參數,包含以下:
- title :分享的標題
- url:分享跳轉的鏈接地址
- imgUrl:分享的圖片路徑
- params:分享路徑需要參數的參數 (對象類型)
- isMerge:是否合並(當前路徑的參數和傳入的參數)默認 false 不合並
第二個參數是一個布爾值,表示是否開啟控制台 打印分享數據信息,默認是 false 不打印,開發時建議設置為true,便於調式
個人總結,難免疏於BUG,請留言。