經(jīng)過(guò)測(cè)試和總結(jié)阳懂,有以下幾點(diǎn):
使用hash模式和history模式都有需要注意的地方去配置:
不同系統(tǒng)打開(kāi)頁(yè)面時(shí)鏈接變化
hash模式
hash模式是默認(rèn)的梅尤,在連接上自動(dòng)生成的#,需要注意的是安卓會(huì)在打開(kāi)新頁(yè)面時(shí)候岩调,自動(dòng)截取掉# 后面的參數(shù)巷燥,之前的微信支付調(diào)用授權(quán)時(shí),hash模式下安卓系統(tǒng)頁(yè)面跳轉(zhuǎn)回來(lái)都不會(huì)刷新号枕,導(dǎo)致無(wú)法獲取新鏈接中的參數(shù)缰揪。此處注意的是不能使location.search不能為空,也就是需要有?參數(shù)即可解決這個(gè)問(wèn)題葱淳。
history模式
history模式下钝腺,需要服務(wù)器做調(diào)整抛姑,具體參考vue-router.js對(duì)此處的解釋:
此時(shí)因?yàn)閕os系統(tǒng)下的每一個(gè)頁(yè)面都是初始加載時(shí)的頁(yè)面,所以ios只用做一次簽名艳狐。一般在程序入口處main.js中記錄下初始路徑定硝,在做簽名時(shí)使用這個(gè)路徑即可,安卓的仍需要在每一次使用時(shí)做簽名毫目。
務(wù)必和后端做好溝通工作蔬啡,確認(rèn)前端傳的鏈接編碼操作和解碼是一致的。之前項(xiàng)目中出現(xiàn)過(guò)后端有解碼鏈接的操作蒜茴,而我前端傳參卻沒(méi)有對(duì)鏈接編碼星爪,也出現(xiàn)過(guò)前端編碼后端未編碼導(dǎo)致簽名失敗的問(wèn)題。