见BUG描述
- 发布:2020-11-06 10:37
- 更新:2021-03-18 14:23
- 阅读:1351
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 10.15.7
HBuilderX类型: 正式
HBuilderX版本号: 2.9.7
手机系统: iOS
手机系统版本号: IOS 14
手机厂商: 苹果
手机机型: iPhone 8
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
见BUG描述
见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() 来获取当前主题
雨夜敬清秋 (作者)
一个半月过去了......
1、当应用在前台的情况下系统自动改变了当前主题时才触发 onThemeChange 钩子---------------这种情况不存在,要改变主题,应用肯定是到后台的,要不然怎么去手机设置里改主题?
2、当应用在前台的情况下我把应用切回后台不应该触发 onThemeChange 钩子---------------------这个是iOS系统触发的
3、当我把应用从后台再切回前台时,如果我想要知道目前系统主题是不是变了,那我就会在 onShow 的钩子里执行 plus.navigator.getUIStyle() 来获取当前主题------------------这样获取也可以
-
雨夜敬清秋 (作者)
要改变主题,应用肯定是到后台的,要不然怎么去手机设置里改主题?----------------------系统会自动切换主题啊,如果到了晚上,系统自动切换为暗黑主题,此时我的应用正在前台使用时,如何处理?样式会自动触发吗?
2020-12-22 11:33