z***@gmail.com
z***@gmail.com
  • 发布:2022-03-21 14:09
  • 更新:2022-03-21 22:29
  • 阅读:526

【报Bug】iPhone 的外观设置为深色模式下 uni.setNavigationBarColor 无效

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

HBuilderX类型: 正式

HBuilderX版本号: 3.3.13

手机系统: iOS

手机系统版本号: iOS 15

手机厂商: 苹果

手机机型: iPhone 12 Pro max

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

当 iPhone 的外观设置(设置 》显示与亮度 》外观)为“深色模式”下,使用下面 uni.setNavigationBarColor 无法改变状态栏为“白底黑字”

uni.setNavigationBarColor({  
  frontColor: '#000000',  
  backgroundColor: '#ffffff',  
  animation: {  
    duration: 400,  
    timingFunc: 'easeIn'  
  }  
})

预期结果:

使用下面代码将状态栏改成“白底黑字”(注意前提一定要把 iPhone 的外观设置为“深色模式”下)

uni.setNavigationBarColor({  
  frontColor: '#000000',  
  backgroundColor: '#ffffff',  
  animation: {  
    duration: 400,  
    timingFunc: 'easeIn'  
  }  
})

实际结果:

下面代码无效(注意前提一定要把 iPhone 的外观设置为“深色模式”下)

uni.setNavigationBarColor({  
  frontColor: '#000000',  
  backgroundColor: '#ffffff',  
  animation: {  
    duration: 400,  
    timingFunc: 'easeIn'  
  }  
})

bug描述:

这个需求主要用在“不跟随系统改变主题模式”,而实现中出现非常奇怪的情况:

。当iPhone的外观设置(设置 》显示与亮度 》外观)为“深色模式”下,一些页面想用 uni.setNavigationBarColor 改成“白底黑字”就不起作用

当iPhone的外观设置(设置 》显示与亮度 》外观)为“深色模式”下,下面这段代码死活没效:

uni.setNavigationBarColor({  
  frontColor: '#000000',  
  backgroundColor: '#ffffff',  
  animation: {  
    duration: 400,  
    timingFunc: 'easeIn'  
  }  
})

即使放在“onReady”还是“onShow 加延迟执行”都没效果

。而反过来,当iPhone的外观设置(设置 》显示与亮度 》外观)为“浅色模式”下,一些页面想用 uni.setNavigationBarColor 改成“黑底白字”就又可以正常改变

2022-03-21 14:09 负责人:无 分享
已邀请:
FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

提供可复现demo,方便排查

该问题目前已经被锁定, 无法添加新回复