华为手机uni-app中uni.navigateTo跳转2次后执行uni.reLaunch出现白屏
华为手机uni-app中uni.navigateTo跳转2次后执行uni.reLaunch出现白屏
操作步骤:
- uni.navigateTo 多跳几次页面,页面不重复。这样跳转2-3次后,执行uni.reLaunch跳转到新页面就会空白。
预期结果:
- uni.reLaunch 跳转后页面正常
实际结果:
- uni.reLaunch 跳转后页面白屏
bug描述:
- nvue开发只要使用uni.navigateTo跳转2或3次以上页面后,再执行uni.reLaunch跳转。这时跳转后的页面为空白,从onload是可以打印出日志,但页面显示不了(空白)。
| 开发环境 | 版本号 | 项目创建方式 |
|----------------------|----------------|--------------|
| PC开发环境操作系统 | Windows | |
| PC开发环境操作系统版本号 | 10.0.17763.529 | |
| 手机系统 | Android | |
| 手机系统版本号 | Android 10 | |
| 手机厂商 | 华为 | |
| 手机机型 | ELS-AN00 | |
| 页面类型 | nvue | |
| 打包方式 | 云端 | |
| 项目创建方式 | HBuilderX | |
更多关于华为手机uni-app中uni.navigateTo跳转2次后执行uni.reLaunch出现白屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于华为手机uni-app中uni.navigateTo跳转2次后执行uni.reLaunch出现白屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个已知的华为手机nvue页面栈管理问题。在华为设备上,多次使用uni.navigateTo后,页面栈可能达到系统限制,此时调用uni.reLaunch会导致页面渲染异常。
建议的解决方案:
-
优化页面跳转逻辑:减少连续使用uni.navigateTo的次数,在需要重置页面栈时优先考虑uni.redirectTo
-
使用条件编译处理华为设备:
// #ifdef APP-PLUS
if (uni.getSystemInfoSync().brand === 'HONOR' || uni.getSystemInfoSync().brand === 'HUAWEI') {
uni.redirectTo({
url: '/pages/target/target'
})
} else {
uni.reLaunch({
url: '/pages/target/target'
})
}
// #endif

