单页面应用在微信分享时参数为[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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值