xiaonao00 2019-12-25
封装的分享方法
function share(o,isDebug = false ) { //路径 let url = o.url || getCurrentPages()[getCurrentPages().length - 1].route; //当前路径所带参数 let urlParams = getCurrentPages()[getCurrentPages().length - 1].options; isDebug&&console.log(`当前路径所带参数:${JSON.stringify(urlParams)}`) //传进来的参数 let params = o.params || {}; isDebug&&console.log(`传进来的参数:${JSON.stringify(params)}`) //当前路径所带参数 合并 传进来的参数 let mergeParams = Object.assign(urlParams, params); isDebug&&console.log(`合并后的参数:${JSON.stringify(mergeParams)}`) //最终参数 (根据是否合并(isMerge)决定最终路径上传递的参数) let resultParam = o.isMerge === true ? mergeParams : params; //url与最终参数的结合路径 let path = (() => { let len = Object.keys(resultParam).length; if (len) { let res = "" for (let k in resultParam) { res += `&${k}=${resultParam[k]}` } return url + ‘?‘ + res.substring(1) } else { return url } })() isDebug&&console.log(` ----分享信息确认---- 是否跳转其他页面:${!!o.url ? o.url : !!o.url} 是否设置分享显示的图片:${!!o.imgUrl ? o.imgUrl : !!o.imgUrl} 是否合并了参数:${!!o.isMerge} 分享的最终路径:${path} `) return o.imgUrl ? { title: o.title, path, imageUrl: o.imgUrl } : { title: o.title, path } }
参数说明:share方法接收两个参数,第一个参数是一个对象,第二个参数是一个布尔值,默认是 false,表示不开启 debug,控制台不打印你分享的数据信息
第一个参数是一个对象表示你传入的分享参数,包含以下:
第二个参数是一个布尔值,表示是否开启控制台 打印分享数据信息,默认是 false 不打印,开发时建议设置为true,便于调式
个人总结,难免疏于BUG,请留言。