uni-app锁屏控制栏不存在,所谓“锁屏控制栏”实为启动图(splash screen);仅支持PNG和JPG格式,Android强制PNG且推荐无透明通道,iOS官方要求PNG,WebP/SVG不被原生层识别。

锁屏控制栏不支持任何图片格式
uni-app 没有“锁屏控制栏”这个原生概念,也不存在官方 API 或组件用于设置系统级锁屏界面的图片。你看到的可能是对 manifest.json 中 splash(启动界面)或 iOS/Android 原生配置的误称。
splash 启动图支持哪些格式
真正可配置的静态启动图(splash screen)仅支持 PNG 和 JPG 格式,且有明确限制:
-
manifest.json的splashscreen配置项只接受本地 PNG/JPG 文件路径,不支持 SVG、WEBP、GIF - Android 平台要求必须是
.png,推荐使用无透明通道的 PNG(避免部分机型渲染异常) - iOS 平台支持 PNG 和 JPG,但 Apple 官方文档要求 launch image 必须为 PNG,JPG 仅在部分模拟器或旧版本中偶然可用,不可依赖
- 尺寸必须严格匹配各设备分辨率(如 iPhone X 系列需提供 1125×2436),不能靠 CSS 缩放适配
为什么 WebP / SVG 不行
原因很直接:原生层不认。
- Android 的
drawable-xxxhdpi目录下只加载 PNG 资源;WebP 虽然 Android 支持,但 splash 启动流程绕过 BitmapFactory,不走通用解码路径 - iOS 的 LaunchImage.xcassets 仅识别 PNG;SVG 在 iOS 原生资源体系中不被 launch image 流程处理
- uni-app 编译时不会对 splash 图做格式转换 —— 它只是把指定路径的文件原样打包进原生工程,不做预处理
容易被忽略的坑
很多人以为改个 background-image 就能换启动图,其实完全不是一回事:
- 写在 CSS 里的
background-image: url(...)对 splash 无效 —— 那是页面渲染后的样式,splash 是原生层绘制的,早于 JS 加载 - 用
~@/static/splash.jpg在 H5 或小程序里能显示,但在 App 端会被忽略 —— 因为 App splash 只读取manifest.json指定的icons或splashscreen字段路径 - 即使图片格式正确,若未按平台要求放入对应目录(如 Android 的
res/drawable-xxxhdpi/),也会 fallback 到默认白屏











