Vue项目Hash/History模式下的分享问题

经过测试和总结,有以下几点:
使用hash模式和history模式都有需要注意的地方去配置:

不同系统打开页面时链接变化

hash模式

hash模式是默认的,在连接上自动生成的#,需要注意的是安卓会在打开新页面时候,自动截取掉# 后面的参数,之前的微信支付调用授权时,hash模式下安卓系统页面跳转回来都不会刷新,导致无法获取新链接中的参数。此处注意的是不能使location.search不能为空,也就是需要有?参数即可解决这个问题。

history模式

history模式下,需要服务器做调整,具体参考vue-router.js对此处的解释:

vue-router history模式解释和后端配置 传送门

此时因为ios系统下的每一个页面都是初始加载时的页面,所以ios只用做一次签名。一般在程序入口处main.js中记录下初始路径,在做签名时使用这个路径即可,安卓的仍需要在每一次使用时做签名。

务必和后端做好沟通工作,确认前端传的链接编码操作和解码是一致的。之前项目中出现过后端有解码链接的操作,而我前端传参却没有对链接编码,也出现过前端编码后端未编码导致签名失败的问题。

你可能感兴趣的:(Vue项目Hash/History模式下的分享问题)