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内存,导致再次打开时出现白屏。
建议解决方案:
- 页面生命周期监听
在
onHide时记录页面状态,在onShow时检查页面是否被销毁:
onShow() {
if (!this.$scope) {
uni.reLaunch({ url: this.$page.route })
}
}
- 使用条件编译针对iOS处理
// #ifdef APP-PLUS
onShow() {
const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
if (!currentPage.$vm) {
currentPage.$vm.$forceUpdate()
}
}
// #endif
- 内存优化
- 减少大图使用,优化图片资源
- 及时清理定时器和事件监听
- 使用
v-if替代v-show控制组件显示
- 配置manifest.json 在app模块配置中启用"fastback"优化:
{
"app-plus": {
"optimization": {
"fastback": true
}
}
}

