微信小程序 原生框架 (分享方法封装)
程序员文章站
2022-03-04 14:37:51
封装的分享方法 1 function share(o,isDebug = false ) { 2 //路径 3 let url = o.url || getCurrentPages()[getCurrentPages().length - 1].route; 4 5 //当前路径所带参数 6 let ......
封装的分享方法
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,请留言。