需求说明
微信小程序每个页面分享给朋友的时候,如果分享的链接里不带参数。那么在onLoad: function (options)
中就会识别不了参数导致页面无数据渲染或者报错无法打开。所以需要一个全局分享方法,
解决方法
我看了很多文档,有的是在app.js中使用wx.onAppRoute
来监听路由切换,设置每一个page的onShareAppMessage方法间接实现全局设置分享内容。官方文档没有这个api并且自己尝试了一下没用,如果各位试的有效果可以跟我说一声,学习一下
我自己就写了个分享当前页面的公有方法:
// 分享当前页面(带参数)
function shareAppMessage() {
var pages = getCurrentPages()
var currentPage = pages[pages.length-1]
var url = currentPage.route
var options = currentPage.options
let key_list = []
for(let key in options) {
key_list.push(`${key}=${options[key]}`)
}
let shareInfo = {
path: '/' + url + '?' + key_list.join('&')
}
return shareInfo
}
在每个页面的onShareAppMessage方法中调用这个方法就可以获得带参数的分享链接。
onShareAppMessage: function () {
return utils.shareAppMessage()
}
如果有更好的方法欢迎评论告诉我