完全解决ios页面返回半截白屏或全白屏问题的方法

在iOS设备上使用Webview加载Vue应用时,从详情页面返回列表页面会出现白屏现象。问题在于gohistory(-1)未能正确处理body高度,需手动点击才可消除遮罩。解决方案包括:1) 设置history.scrollRestoration为'manual',阻止自动滚动;2) 在activated钩子中利用setTimeout强制滚动到顶部。这两种方法能有效防止白屏问题的发生。

问题描述:列表页面——>详情页面——>ios自带的返回——>白屏

手动点击白屏处——>问题解决;

原因是,发现在ios 机器上使用webview 开发Vue项目时候,go history (-1),无法将body 的高度拉掉,使得遮住,触发轻点击,方可消除该遮罩

解决1.history.scrollRestoration='manual';
原理:更改history对象的默认滚动属性值
History.scrollRestoration
定义:允许web应用程序在历史导航上显式地设置默认滚动恢复行为
参数值:
1. auto 将恢复用户已滚动到的页面上的位置
2. manual 未还原页上的位置。用户必须手动滚动到该位置

// 通过路由守卫,判断设置manual
router.beforeEach((to, from, next) => {
  if (history.scrollRestoration) {
    history.scrollRestoration = 'manual'
  }
}
解决2activated(){
    setTimeout(()=>{
         document.documentElement.scrollTop = 0;
         document.body.scrollTop = 0;
    },0);
}
原理 强制滚动回初始位置

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值