uni-app IOS打开APP后放置在后台,半小时左右再次切换会白屏

uni-app IOS打开APP后放置在后台,半小时左右再次切换会白屏

操作步骤:

  • 打开APP,后台挂着去玩其他的,等个半小时以上切换回来就白屏了,只能重启APP解决

预期结果:

  • 正常切换非原生区域不白屏

实际结果:

  • 切换后非原生区域不白屏

bug描述:

  • IOS上经常遇到打开APP后,放置在后台,无需管它,等个半小时(无法确认具体多久)之后再次切换进去就会白屏(因为默认背景色为白屏,切原生的底部导航确并不会白)。这时切换导航切换回来也并不会重新加载,具体看附件,实在找不到是什么原因了,我从2.5.X以上的版本编译的包就一直有这个问题,现在3.1.13还是有这个问题,安卓没测试,不知道是不是挂久了内存回收了,但实际APP是没有被回收的,点开就知道没被回收就是白屏,只能重启APP解决,也不是必现但概率比较高 20%以上,目前还没找到必现的办法,但看起来是挂后台久了导致。

附件

image

项目信息
产品分类 uniapp/App
PC开发环境 Mac
PC操作系统版本 11.2.3
HBuilderX类型 正式
HBuilderX版本 3.1.13
手机系统 iOS
手机系统版本 IOS 14
手机厂商 苹果
手机机型 iPhone XR,iphone 11 max,iphone12 pro
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX
App下载地址 链接

更多关于uni-app IOS打开APP后放置在后台,半小时左右再次切换会白屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

https://ask.dcloud.net.cn/article/36540
参考以上链接试下可不可以解决问题

更多关于uni-app IOS打开APP后放置在后台,半小时左右再次切换会白屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html


测试打了一个最新的包按照配置还是不行

这是一个典型的iOS后台内存管理问题。当uni-app应用在后台长时间挂起时,iOS系统会回收Webview内存资源,导致切换回前台时页面渲染异常。

解决方案:

  1. 检查页面生命周期管理onHideonShow生命周期中添加状态恢复逻辑,确保页面重新激活时能正确初始化。

  2. 配置应用后台运行能力 在manifest.json中确认已正确配置后台运行权限,避免iOS过度回收资源。

  3. 优化内存使用

  • 减少全局变量的使用
  • 及时清理定时器和事件监听
  • 使用uni.reLaunchuni.navigateTo的重载参数强制刷新页面
  1. 添加页面恢复机制 在应用从后台返回时,检查页面状态并执行必要的重新初始化:
onShow() {
  if(this.$isAppBackFromBackground) {
    // 执行页面恢复逻辑
    this.reloadPageData()
  }
}
回到顶部