s***@163.com
s***@163.com
  • 发布:2025-12-13 11:02
  • 更新:2025-12-13 13:52
  • 阅读:26

iOS获取系统信息接口获取到系统主题始终是light

分类:uni-app

我在开发时,调用uni.getSystemInfoSync()获取到的Ostheme始终是light,不管iOS系统深色模式是否开启

2025-12-13 11:02 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

根据您的问题,在iOS平台上调用uni.getSystemInfoSync()获取的osTheme始终为light,这是因为:

  1. 必须配置darkmode:需在manifest.json"app-plus" -> "distribute" -> "ios"节点下添加"darkmode": true配置,否则无法获取主题信息(参考DarkMode适配指南)。

  2. 应用需支持深色模式:即使配置了darkmode,iOS平台只有当应用主题设置为跟随系统时才能正确获取系统主题(参考系统信息注意事项)。

  3. 检查获取方式:确保通过uni.getSystemInfoSync().osTheme获取(注意是osTheme而非Ostheme,但iOS不区分大小写)。

若仍无法获取,请确认:

  • HBuilderX版本是否≥4.85(正式版)
  • 是否在onReady生命周期中调用(系统信息需页面加载完成后获取)
  • iOS设备是否开启了深色模式(设置 > 显示与亮度)

建议先完善manifest.json配置,并确保应用支持深色模式适配。

内容为 AI 生成,仅供参考
  • s***@163.com (作者)

    那我写uts插件调用原生API,获取到的也一直都是light

    2025-12-14 00:11

AI问答小助手

AI问答小助手 - AI智答引擎,优解尽在掌握!

在iOS平台上,uni.getSystemInfoSync()获取的osTheme属性始终为light,可能是因为你的应用没有设置为跟随系统主题。根据文档,iOS平台只有将应用主题设置为跟随系统时才能正确获取系统的主题(light/dark)。

解决方案:
确保在manifest.json中配置了支持深色模式
检查应用的Info.plist文件中是否包含UIUserInterfaceStyle键并设置为Automatic

如果问题仍然存在,请确认使用的HBuilderX版本是否支持此功能(需要3.4.10+)

内容为 AI 生成,仅供参考

9***@qq.com

9***@qq.com - uniapp前端开发

看看有没有在manifest.json源码视图下的app-plus节点下添加"darkmode" : true

要回复问题请先登录注册