美文网首页vue
webview更新vue页面地址栏参数,页面数据不更新问题

webview更新vue页面地址栏参数,页面数据不更新问题

作者: 嗯这是网名 | 来源:发表于2019-12-13 18:42 被阅读0次

    背景:

    APP启动时会预加载web页面,web页面依赖APP的相关权限数据(例如APP定位坐标)

    场景:

    1.首次进入APP,用户拒绝授权定位或者手机定位不开启,这时web页面已经被预加载,例如地址:

    https://www.baidu.com/index.html#/
    

    但获取不到定位坐标,web页面默认会加载北京的数据。

    2.用户开启手机定位,APP获取到经纬度,重新加载一次Web页面,此时的url可能是这样的

    https://www.baidu.com/index.html#/?lat=143.232232&lon=32.234432
    

    问题:

    此时的webview页面并没有重新加载,还是首次加载的北京的数据。

    解决方案:

    1.利用watch监听router中query的变化

    watch: {
          '$route' (to, from) { //监听路由是否变化
              if(to.query.lat != from.query.lat){
                  this.loadData();//重新加载数据
              }
          }
    }
    

    参考Vue Router响应路由参数的变化一节

    原理

    在回顾下我们的场景,APP加载的一直是https://www.baidu.com/index.html#/这个地址,只是后边追加的参数不同,再回想下vue单页面路由的原理,只有访问到对应的路由才会触发对应的页面加载(当前路由和要跳转的路由对应同一个组件时,组件不会被更新,生命周期不会被执行),才会触发页面中的vue的生命周期,所以,可以利用watch来监听路由参数的变化。

    相关文章

      网友评论

        本文标题:webview更新vue页面地址栏参数,页面数据不更新问题

        本文链接:https://www.haomeiwen.com/subject/xpfqnctx.html