微信小程序 原生框架 (分享方法封装)
封装的分享方法
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,控制台不打印你分享的数据信息
第一个参数是一个对象表示你传入的分享参数,包含以下:
- title :分享的标题
- url:分享跳转的链接地址
- imgUrl:分享的图片路径
- params:分享路径需要参数的参数 (对象类型)
- isMerge:是否合并(当前路径的参数和传入的参数)默认 false 不合并
第二个参数是一个布尔值,表示是否开启控制台 打印分享数据信息,默认是 false 不打印,开发时建议设置为true,便于调式
个人总结,难免疏于BUG,请留言。
相关推荐
戴翔的技术 2020-05-18
齐天大圣数据候 2020-05-16
过时不侯的温暖 2020-05-08
浪味仙 2020-04-20
戴翔的技术 2020-03-04
zengfanpei 2020-02-20
cbao 2020-02-14
xiaonao00 2020-01-02
cbao 2019-12-12
浪味仙 2019-12-10
maodouhuasheng 2019-12-04
且听真言 2019-12-01
ywwazyj 2019-11-15
badroot 2019-11-18
badroot 2019-11-17
zhichijunjun 2019-11-13
wjeymiantan 2019-11-07