欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

“vue中微信分享出来的链接点开是首页”问题解决

程序员文章站 2023-03-26 21:37:35
最近工作上遇到了这样一个bug。 公司网站有pc端和移动端,两个版本。其中如果手机访问pc端,则自动跳转到移动端。(这是常规操作,没啥稀奇点。) 可神奇的问题来了。 在移动端...

最近工作上遇到了这样一个bug。

公司网站有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给修复了。