最近同事找到我说他的微信分享的参数莫名消失,我一开始觉着肯定是代码有问题,有些细节没注意好。
后来我吧我做的微信分享的代码发给他,结果也是一样的,然后我就开始找原因。
PS:我这边是基于vue框架开发的,如果你用的是其他框架参照思路就好了,解决起来并不难
一开始我怀疑微信把跳转链接转码了,于是在前置路由中打印出了windown.location.href,发现参数被替换了,然后我发现我之前做的微信分享连接带的参数只有一个,于是把同事的微信分享参数改成一个之后又正常了,经百度搜搜之后也有相同的情况。
然后我就想,可能跟拿授权code一样,state参数值如果包含了URI中的特殊字符需要encodeURI,于是吧参数做了encodeURI结果就可以了。
// 原链接
let link = 'https://www.baidu.com/#/?a=1&b=2&c=3'
// 替换成 encodeURIComponent是js的一个对URI的特殊符号进行转义的一个函数
let param = '?a=1&b