最近⼯作上遇到了这样⼀个Bug:“vue分享出来的链接点开是⾸页”
公司⽹站有PC端和移动端,两个版本。其中如果⼿机访问PC端,则⾃动跳转到移动端。(这是常规操作,没啥稀奇点。)
可神奇的问题来了。
在移动端中有分享功能,如果⼿机直接访问⼿机端的地址进⼊⼦页⾯分享,点开分享的链接进⼊的是⼦页⾯。但是如果是从PC端跳转进⼊⼿机端,分享⼦页⾯链接打开将会是主页。
这个问题我也百度了各种⽅法,折腾了⼀天,然⽽都没啥⽤。
最后⾃⼰想了⼀个替代⽅案:
在static⽬录下新建⼀个名为html的⽂件夹,在html⽂件夹中再新建⼀个redirect.html(看到这个⽂件名是不是知道我要⼲啥了)
没错,我们做⼀个重定向。
html中写⼊以下内容
<script>
let url = location.href.split('?')
let pars = url[1].split('&')
let data = {}
pars.forEach((n, i) => {
let p = n.split('=')
data[p[0]] = p[1]
})
if (!!data.app3Redirect) {
self.location = decodeURIComponent(data.app3Redirect)
}
</script>
只需要script标签就可以了,反正只是做重定向。
接下来就简单了,原本设置给的分享链接是
shareWxLink = window.location.href
现在我们给他改成
shareWxLink = window.location.href.split('#')[0] + 'static/html/redirect.html?app3Redirect=' + encodeURIComponent(window.location.href)
这样,我们就把当前页的地址编码后放到参数app3Redirect⾥⾯,当访问redirect.html时将⾃动重定向到解码后的原地址。
到此,终于把这个坑爹的Bug给修复了。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
发布评论