邓琪昌
邓琪昌
  • 发布:2022-11-15 20:17
  • 更新:2022-11-22 11:26
  • 阅读:1785

【报Bug】DarkMode 适配Android端uni.onThemeChange监听无效,深色模式系统状态栏异常,系统深浅色切换后应用内没有自动切换深浅模式。

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: Alpha

HBuilderX版本号: 3.6.9

手机系统: Android

手机系统版本号: Android 12

手机厂商: 华为

手机机型: 华为荣耀8x,小米,oppo

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
// theme.json文件内容  
{  
    "light": {  
        "navBgColor": "#f8f8f8",  
        "navTextStyle": "black",  
        "bgColor": "#f8f8f8"  
    },  
    "dark": {  
        "navBgColor": "#141414",  
        "navTextStyle": "white",  
        "bgColor": "#141414"  
    }  
}

操作步骤:

根据上传的附件测试工程项目进行android自定义基座后进行深色浅色切换测试,测试工程项目是根据官网的DarkMode 适配指南进行配置的。

预期结果:

与ios端、微信小程序一样,正常深色浅色切换。

实际结果:

系统进行深色浅色模式切换,android应用内没有进行深色浅色切换。uni.onThemeChange和onThemeChange监听无效。深色适配后深色模式系统状态栏深色模式下一直是黑色的,theme.json中配置的是白色。

bug描述:

根据DarkMode 适配指南进行测试工程问题说明:
1、android端深色适配后uni.onThemeChange和onThemeChange应用生命周期监听不到。
2、系统深色、浅色切换后,回到android应用内并没有进行深色、浅色自动切换,需要人为的关闭应用再次打开应用后才有效果。(ios、微信小程序、h5是系统深浅色切换后回到应用内是跟着自动切换深浅色模式)。
3、android适配深色模式后,深色模式下系统状态栏异常。深色模式下系统状态栏配置了白色,但是一直是黑色的。下方代码示例中有theme.json的适配代码。
4、建议android的在深色模式下下拉刷新也可以进行适配。
5、附件中上传了一张华为、小米、oppo深色模式下测试工程项目的示例截图,状态栏异常。
6、只测试了华为鸿蒙、oppo、小米品牌手机,其他andriod手机品牌未测试。

2022-11-15 20:17 负责人:DCloud_Android_THB 分享
已邀请:

最佳回复

DCloud_Android_THB

DCloud_Android_THB

此问题已在HBuilder X- alpha 3.6.10修复。

  • 邓琪昌 (作者)

    HBuilder X- alpha 3.6.9不就是现在的版本吗?

    2022-11-21 20:02

  • DCloud_UNI_LXH

    回复 邓琪昌: alpha 3.6.10 已修复,可以升级试试看

    2022-11-22 10:50

DCloud_UNI_LXH

DCloud_UNI_LXH

你是手动切换吗?目前android只支持 auto 来适配深色模式,不支持手动设置,请设置为 auto 后切换系统 深色/浅色 查看效果

  • 邓琪昌 (作者)

    不是的,是android深色适配有问题,请看上面的问题描述。

    2022-11-16 15:03

  • DCloud_UNI_LXH

    回复 邓琪昌: 使用 小米8 并没有复现你说的问题,切换时都正常。你试试调用一下 plus.setUIStyle('auto') 然后再切换系统的深浅色模式试试

    2022-11-16 15:46

  • 邓琪昌 (作者)

    调用了plus.nativeUI.setUIStyle("auto")后再切换系统的深浅色是正常的了,uni.onThemeChange也可以监听到了。但是系统状态栏还是存在问题,华为和oppo系统切换深色,系统状态栏一直是黑色的,theme.json配置的是白色没有生效。小米的系统状态栏是正常的。

    2022-11-16 17:00

  • 邓琪昌 (作者)

    华为和oppo手机就如附件中上传的示例图一样,系统状态栏一直是黑色的,没有切换成白色。小米手机系统状态栏是正常的。麻烦老哥使用华为或者oppo手机测试即可复现问题。

    2022-11-16 17:02

  • DCloud_UNI_LXH

    回复 邓琪昌: 状态栏可以暂时使用 setStatusBarStyle 过渡一下,已经和同事说明问题

    2022-11-16 19:10

  • 邓琪昌 (作者)

    回复 DCloud_UNI_LXH: 好的,感谢。

    2022-11-16 19:22

搬砖大老

搬砖大老 - 大老不是大佬

"navigationStyle": "custom" 情况下,顶部的原生导航栏为不显示,
但是切换主题后, 顶部的原生导航栏会显示出来。

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