微信分享#后面被截断,导致安卓分享失效

最近用vue的hash模式基于微信公众号开发的分享链接再安卓手机#后面的被截断了,导致分享每次都是跳转到首页,ios是没有问题的。

首先:微信对于分享的链接后面会加上它们的一些参数,比如:from=singlemessage&isappinstalled=0等,分享到不同的,

参数名称不一样的,朋友圈,好友,群组各不一样,可以自己抓包看看;假如我们分享的地址:https://baidu.com/#/detail?id=2

ios是可以正常分享,正常跳转,但是安卓的就会出现跳转的地址:https://baidu.com/,#后面的被截断了,具体原因也不知道,

微信做了不可告人的事情,哈哈,但是我们还是要解决,网上搜了一堆,试了好多没有用,最后看到一个,就是再分享的链接拼接

地址的时候再‘#’前面增加问号,这样看到的地址就包括我们的参数了

//添加?解决安卓分享被截断问题
if (url.indexOf('?') != -1) {
    url = url.split('?')[0];
    link = url + '?#' + location.href.split('#')[1];
}
else {
    link = url + '?#' + location.href.split('#')[1];
}

但是问题又出现了,最终点击分享https://baidu.com/?#/detail?from=singlemessage&isappinstalled=0&id=2的结果的跳到的链接是空白,

最后没办法,只能要求后端,把微信追加的那段from=singlemessage&isappinstalled=0给截取掉,跳转的url变成:https://baidu.com/#/detail?id=2

最后才解决。

结论:微信是个坑,安卓也是一个坑

posted on 2019-08-20 11:24  IT-HourseMan  阅读(1244)  评论(0编辑  收藏  举报