单页面应用在微信分享时参数为[Object]

A 通过微信右上角分享或者海报二维码方式带上 recommendId 字段,例:

https:www.xxx.com/wx/activity/h5?id=666&recommendId=123

$route.query.recommendId 返回 123

B 通过这个链接再进行分享

https:www.xxx.com/wx/activity/h5?id=666&recommendId=123&recommendId=456

这时候 $route.query.recommendId 参数返回的就是一个数组 ['123','456'],部分机型在进入 B 的链接时会把 recommendId 这个参数合并成数组,就出现了参数为 [Object] 的问题了。

解决办法

在分享前对当前页面的 url 预处理,替换掉已有的 recommendId

let _href = location.href
if (location.href.indexOf('recommendId') !== -1){
    this.replaceParamVal(_href,'recommendId','456')
}


replaceParamVal(url, paramName, replaceVal) {
    var oUrl = url.toString();
    var re = eval('/(' + paramName + '=)([^&]*)/gi');
    var nUrl = oUrl.replace(re, paramName + '=' + replaceVal);
    return nUrl;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容