uni-app ios静置后台一段时间,再次打开就出现白屏

uni-app ios静置后台一段时间,再次打开就出现白屏

操作步骤:

  • 苹果手机,切换app到后台,静置一段时间,切换回来,除了首页,其他tab都是白屏

预期结果:

  • 如果是内存不足,也可以重新加载app,而不是白屏

实际结果:

  • 内存不足,白屏

bug描述:

  • ios静置后台一段时间,再次打开就出现白屏了。查看一下是说内存不足页面奔溃。看到有人是通过监听节点是否存在,不存在就刷新的方式。使用这个方式就怕无限刷新。请问有大佬遇到这种问题吗?
1 回复

更多关于uni-app ios静置后台一段时间,再次打开就出现白屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的iOS内存回收机制导致的页面销毁问题。当uni-app应用在iOS后台静置时间较长,系统会回收非活动页面的Webview内存,导致再次打开时出现白屏。

建议解决方案:

  1. 页面生命周期监听onHide时记录页面状态,在onShow时检查页面是否被销毁:
onShow() {
    if (!this.$scope) {
        uni.reLaunch({ url: this.$page.route })
    }
}
  1. 使用条件编译针对iOS处理
// #ifdef APP-PLUS
onShow() {
    const pages = getCurrentPages()
    const currentPage = pages[pages.length - 1]
    if (!currentPage.$vm) {
        currentPage.$vm.$forceUpdate()
    }
}
// #endif
  1. 内存优化
  • 减少大图使用,优化图片资源
  • 及时清理定时器和事件监听
  • 使用v-if替代v-show控制组件显示
  1. 配置manifest.json 在app模块配置中启用"fastback"优化:
{
    "app-plus": {
        "optimization": {
            "fastback": true
        }
    }
}
回到顶部