“vue中微信分享出來的連結點開是首頁”問題解決
阿新 • • 發佈:2019-01-01
最近工作上遇到了這樣一個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給修復了。