記 vue-router 在微信瀏覽器中操縱history URl未轉變的解決方案

背景

在PC端和手機瀏覽器中router.replace() or router.push()能夠一般運用,頁面的地點和頁面都一般顯現;然則在微信中,從/a頁面經由過程router.push(‘/b’)跳轉到/b頁面后,頁面一般,然則複製瀏覽器的地點會發明其地點仍為/a;挑選在瀏覽器翻開闢明也是顯現的/a的頁面。
這應該是微信瀏覽器那裡的題目,微信瀏覽器只會記着你第一次進來的地點。

微信瀏覽器不會自動增加 #

在pc端或許手機瀏覽器開闢的時刻 輸入localhost:8080,瀏覽器會自動跳轉到localhost:8080/#/,然則在微信瀏覽器中,雖然頁面顯現一般了,然則我們經由過程微信右上角的選項複製當前的地點,會發明地點為依然localhost:8080,這背面致使了其他的 router.push()操縱都沒法修正微信瀏覽器的url;固然,假如我們在順序中alert(location.href)是一般的。

  • 處理方案

在進入頁面的時刻我們默許的給url加上#,即localhost:8080/#/,再次測試后發明 安卓 中微信瀏覽器的url和我們項目中的url相對應了。

iOS中微信瀏覽器url依然不對應

處置懲罰完上面的題目后測試安卓機一般了,然則iOS機型微信中在/b頁面複製地點中依然/a頁面,檢察材料網上很多人都說能夠經由過程鏈接的體式格局處置懲罰。

1.用history的時刻,把router-link換成a標籤跳轉,

我的處置懲罰體式格局是點擊跳轉后直接運用window.location.herf = 'localhost:8080/#/b'的體式格局,即直接拼接好跳轉的後路由地點。臨時處理了這個題目
由於我在項目中測試只要ios在微信中湧現這個題目,所以只針對ios在微信中特別處置懲罰。其他情況下照樣經由過程hash路由一般處置懲罰。

    原文作者:ZHAO_
    原文地址: https://segmentfault.com/a/1190000014411266
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞