公司使用vue开发,可是在android微信中页面显示正常,在iOS中点击页面跳转却会显示异常,由于ios微信浏览器出现底部功能栏导致窗口视口高度变小,而由于单页面页面没有刷新导致定位错乱。
网上找了一些资料发现好多人是处理把底部的功能栏隐藏,通过对浏览器历史记录处理,是没有历史记录使隐藏底部功能栏,这里加入你需要记住历史记录,则需要单独存储历史记录,并进行相应的处理,会比较麻烦。因此写个笔记,给有需要的同学。
我们产品的需求是页面显示正常即可不强制隐藏微信底部的功能栏,这里H5的新属性pushstate就刚好用到。可以在页面初次加载时就添加历史记录主动调出微信的底部栏。这样就解决了布局错乱问题,也不用对历史记录的特殊处理。
思路有了代码也很简单,贴个我的代码
isIOS= !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
if(fn.isIOS){
window.history.pushState({}, "title", "#");
}