webview更新地址没有发起请求
场景
app启动的时候会预加载web页面,web页面依赖app的相关权限数据(例如aoo定位坐标)
- 首次进入app,用户据胡娥授权定位或者手机定位未开启,这时候web页面已经预加载。(以hash路由为例)
1 | https://www.baidu.com/index.html#/ |
获取不到定位,页面先加载北京的数据。
- 用户开启手机定位,app获取到经纬度,重新请求一次接口,url地址为
1 | https://www.baidu.com/index.html#/?lat=143.232232&lon=32.234432 |
问题
url更新并没有请求接口更新数据
解决问题
利用watch监听router中query的变化
1 | watch: { |
APP加载的一直是https://www.baidu.com/index.html#/
这个地址,只是后边追加的参数不同,再回想下vue单页面路由的原理,只有访问到对应的路由才会触发对应的页面加载(当前路由和要跳转的路由对应同一个组件时,组件不会被更新,生命周期不会被执行),才会触发页面中的vue的生命周期,所以,可以利用watch来监听路由参数的变化。