微信小程序 原生框架 (分享方法封裝)


 

封裝的分享方法

 

 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,控制台不打印你分享的數據信息

第一個參數是一個對象表示你傳入的分享參數,包含以下:

  1. title :分享的標題
  2. url:分享跳轉的鏈接地址
  3. imgUrl:分享的圖片路徑
  4. params:分享路徑需要參數的參數  (對象類型)
  5. isMerge:是否合並(當前路徑的參數和傳入的參數)默認 false 不合並

第二個參數是一個布爾值,表示是否開啟控制台 打印分享數據信息,默認是 false 不打印,開發時建議設置為true,便於調式

 

 

個人總結,難免疏於BUG,請留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM