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

时间:2019-08-20
本文章向大家介绍微信分享#后面被截断,导致安卓分享失效,主要包括微信分享#后面被截断,导致安卓分享失效使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

最近用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

最后才解决。

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

原文地址:https://www.cnblogs.com/dehuachenyunfei/p/wechat_share.html