解决新版微信底部返回栏问题

问题

微信更新后,新加的文章缩小浮窗功能很赞。
不过,有一处更新让我吐槽了半天,就是在iPhone上WebApp页面底部多了一个白色的前进后退控制栏,即下图底部的返回栏


日了狗了的扯蛋底部返回栏.jpg

问题所在

通过搜索发现底部返回栏的机制是

  • 页面出现跳转时出现
  • 页面向下滚动时隐藏

出现状态如下图


出现底部返回栏.gif

解决办法

针对上面的机制,对应两种办法去隐藏底部返回栏

  1. 已知是跳转出现,那我们就对跳转进行拦截,让所有的跳转使用 replace()
  • 使用原生JS
location.replace(URL)
  • 如果你使用vue-router
let toURL = null
router.beforeEach((to, from, next) => {
  if (toURL === to.path) {
    next()
  }
  if (to.path !== from.path) {
    toURL = to.path
    router.replace(to.path)
    next()
  }
})
成功隐藏底部返回栏.gif
  1. 使页面可以向下滚动

注意replace()带来的问题

当你使用replace()时,浏览器没有历史记录

  • 如果你不需要,那么恭喜你不用继续看下去了
  • 如果你很不幸,你需要历史记录,那么也存在两种场景
    • 微信浏览时不需要
      • 判断是否微信浏览,如果是就进行replace()
        let isWeiXin= window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'
        
    • 微信浏览时需要
      • 自己实现一个历史记录数组,每次replace()时存入记录
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,026评论 3 119
  • 每一次心路历程的经历,都会让自己有所收获,同时在前期幼稚,野蛮,情绪化的时候,理智和智慧起来。感谢一切。感谢生活中...
    瑞妮阅读 206评论 0 0
  • 以为一分钟会过很快 其实一分钟会过好久
    _Gun阅读 218评论 0 2
  • 在工作中,尤其是在对外的行业,我们往往拥有的头衔大于职位本身的事情,有的小小年纪就印着经理、总监的职位出去混社会。...
    宫骁葵阅读 213评论 0 0
  • 文/辰未书屋 上一章/13、球案记事(下) 全目录/青春是个永动机 14、Rock'n Roll ----我睡了一...
    辰未书屋阅读 416评论 0 2