问题描述:在ios内嵌入H5(使用vue-cli搭建得vue框架),在A页面滚动超过一屏后,进入B页面,然后使用this.$router.back(-1)方法返回,这时候A页面会出现白屏或者部分功能渲染不正常,需要点一下页面或者滑动一下页面才会正常。

问题解决:最开始以为是页面引入得某个插件得问题,在经过一系列排查之后,发现不是,最后想到有可能是因为页面滚动高度得问题,因为首屏得返回都是正常得。最后在mounted()里面加入方法      window.scrollTo(0, 0),发现还是无法解决,然后在网上查找原因,发现这个问题是通病,好多大神也碰到过。然后我就一个方法一个方法得的试,最后整合了大神们得方法,最终解决了问题,代码如下:

  created(){

    if ('scrollRestoration' in history) {

      history.scrollRestoration = 'manual'

    }

  },

原因分析:网上分析得原因基本都是说是ios浏览器兼容得问题,我觉得也是,因为在本地调试或者安卓上测试时,都没发现问题。

一般情况下来说,不管是安卓或者ios,只要是调兼容得问题,都会异常复杂并且磨人脾气,通常开发一天,调兼容一天。所以出现了兼容问题,就赶紧记录一下。希望之后得开发之路能够顺利一点。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐