华为手机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会导致页面渲染异常。

建议的解决方案:

  1. 优化页面跳转逻辑:减少连续使用uni.navigateTo的次数,在需要重置页面栈时优先考虑uni.redirectTo

  2. 使用条件编译处理华为设备

// #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
回到顶部