雨夜敬清秋
雨夜敬清秋
  • 发布:2020-11-06 10:37
  • 更新:2021-03-18 14:23
  • 阅读:1351

【报Bug】2.9.7,onThemeChange 会在切入后台时执行2次

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 2.9.7

手机系统: iOS

手机系统版本号: IOS 14

手机厂商: 苹果

手机机型: iPhone 8

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

见BUG描述

预期结果:

见BUG描述

实际结果:

见BUG描述

bug描述:

首先有疑问如下:
1、应用生命周期钩子 onThemeChange 是否在系统自动切换主题后才自动触发?
2、当我使用 uni.onUIStyleChange 时提示 API uni.onUIStyleChange 已过时,请使用 uni.onThemeChange,详情:https://uniapp.dcloud.net.cn/api/system/theme,这里的详情依旧指向 API uni.onUIStyleChange ,是文档没更新?

bug如下,见附件图片:
当我在 App.vue 文件中使用 onThemeChage 钩子,使用方式如下

    // 监听系统主题状态变化  
    onThemeChange (option) {  
      console.log('onThemeChange', option)  
    }

然后我把应用从前台切入后台时,这个钩子会执行2次
第一次的结果与当前主题相反,第二次的结果才是正确的当前主题

正常情况下这个钩子不应该在这样的场景下触发吧?

我的理解是:
1、当应用在前台的情况下系统自动改变了当前主题时才触发 onThemeChange 钩子
2、当应用在前台的情况下我把应用切回后台不应该触发 onThemeChange 钩子
3、当我把应用从后台再切回前台时,如果我想要知道目前系统主题是不是变了,那我就会在 onShow 的钩子里执行 plus.navigator.getUIStyle() 来获取当前主题

2020-11-06 10:37 负责人:DCloud_uni-ad_HDX 分享
已邀请:
雨夜敬清秋

雨夜敬清秋 (作者)

有相关负责人吗

雨夜敬清秋

雨夜敬清秋 (作者)

什么情况,怎么连个回应都没有

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

已更新文档,正在确认回调问题

雨夜敬清秋

雨夜敬清秋 (作者)

一个半月过去了......

  • CLP

    你描述的问题影响你业务进行吗? 目前有2种情况会触发onThemeChange这个事件:1、手机设置改变了样式,后台到前台之后,会触发这个onThemeChange事件。2、前台到后台会触发2次onThemeChange事件,这是因为iOS系统触发了2次,一次和当前样式相反,一次是当前的样式。以上2种情况 最后监听到的样式都是最终生效的样式,应该不影响你的业务进行

    2020-12-22 11:17

CLP

CLP

1、当应用在前台的情况下系统自动改变了当前主题时才触发 onThemeChange 钩子---------------这种情况不存在,要改变主题,应用肯定是到后台的,要不然怎么去手机设置里改主题?
2、当应用在前台的情况下我把应用切回后台不应该触发 onThemeChange 钩子---------------------这个是iOS系统触发的
3、当我把应用从后台再切回前台时,如果我想要知道目前系统主题是不是变了,那我就会在 onShow 的钩子里执行 plus.navigator.getUIStyle() 来获取当前主题------------------这样获取也可以

  • 雨夜敬清秋 (作者)

    要改变主题,应用肯定是到后台的,要不然怎么去手机设置里改主题?----------------------系统会自动切换主题啊,如果到了晚上,系统自动切换为暗黑主题,此时我的应用正在前台使用时,如何处理?样式会自动触发吗?

    2020-12-22 11:33

  • CLP

    回复 雨夜敬清秋: 你说的是开启了自动模式是吗? 这种情况,iPhone会等到用户不使用屏幕时才执行外观切换

    2020-12-22 11:51

  • 雨夜敬清秋 (作者)

    回复 CLP: 怎么我发现微信等多个应用都是在系统自动切换了模式后,也跟着切换了主题

    2020-12-22 11:54

  • CLP

    回复 雨夜敬清秋: 微信等应用在前台切换的主题?

    2020-12-22 12:10

  • CLP

    回复 雨夜敬清秋: 我刚才测试了设定时间之后,微信不是在前台切换的,我锁屏之后再开屏,微信才变化的

    2020-12-22 12:24

  • 雨夜敬清秋 (作者)

    回复 CLP: 我再观察一下看看

    2020-12-22 13:10

  • zhaoyu2020

    为什么我获取的 一直是 light

    2022-09-07 16:51

老王Plus

老王Plus

你的还能用,为什么我的没有反应呢?

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