删掉 static/splash.png 不能单独取消开屏图,必须同步清空 manifest.json 中 app-plus.splashscreen 整个字段、删除 ios 的 launchscreen.storyboard、离线打包时清理原生工程中的 drawable/splash.png,四步缺一不可。

直接删掉 static/splash.png 就能取消默认开屏图,但必须配合 manifest.json 里 app-plus.splashscreen.autoclose: false 和手动调用 plus.navigator.closeSplashscreen(),否则部分 Android 设备会闪白或卡在黑屏。
为什么删了 splash.png 还有图?
uni-app 的启动页逻辑分两层:原生层兜底 + JS 层控制。即使你删了 static/splash.png,只要 manifest.json 中 app-plus.splashscreen 配置存在(哪怕只写了 {"autoclose": true}),原生侧仍会尝试加载一张默认图——Android 可能 fallback 到纯色背景,iOS 则可能显示 LaunchScreen.storyboard 的默认内容。
- 检查
manifest.json是否在app-plus节点下残留了splashscreen字段;有就清空或删掉整个字段 - iOS 真机上即使没配图,
launch-screen/LaunchScreen.storyboard文件若存在,也会被系统渲染;不想要任何启动图,就得删掉这个文件 - Android 的
res/drawable/splash.png(离线打包时)可能被自动注入,需进原生工程手动删
manifest.json 里 splashscreen 怎么配才真正“关掉”
不是留空,也不是设 imagePath: "",而是让 uni-app 完全不走 splash 流程。关键点是:移除配置 + 禁用自动关闭 + 手动接管。
- 删除
app-plus下的整个splashscreen对象(不要只改imagePath) - 确保
app-plus节点下没有"splashscreen": {...}字段,哪怕值为空对象也不行 - 如果必须保留 splash 配置(比如要用广告插件),那就设
"autoclose": false和"alwaysShowBeforeRender": false,然后在onLaunch里立刻执行plus.navigator.closeSplashscreen() - 注意:云打包时,
manifest.json修改必须重新提交云端才能生效,本地调试不生效
删图后真机还闪一下?这是白屏不是开屏图
删掉所有启动图资源后仍看到一闪而过的白/灰屏,说明 Webview 渲染延迟暴露了底层空白。这不是开屏图没删干净,而是首页加载太慢导致视觉断层。
- 在
pages.json对应首页的app-plus配置中加"titleNView": false,避免导航栏占位干扰 - 首页
onLoad里不要做重请求或复杂计算,优先保证 DOM 快速渲染出骨架 - 可临时加一层
div覆盖在页面顶部,背景色与主题一致,onReady后 fade out,掩盖白屏间隙 - Android 12+(targetSdkVersion ≥ 31)强制使用 SplashScreen API,uni-app 默认不兼容,此时必须手动改
AndroidManifest.xml去掉android:windowSplashScreenBackground相关配置
最干净的做法是:删 static/splash.png、清空 manifest.json 里的 splashscreen、删 iOS 的 LaunchScreen.storyboard、离线打包时确认原生工程里没残留 drawable 图片——做完这四步,App 启动就是直奔首页,没有中间态。但要注意,跳过开屏图意味着用户第一眼看到的就是未完全渲染的页面,首屏体验反而更依赖前端优化。











