欢迎到专业群( HBuilderX技术交流群 ) 咨询,群中有相关专业的管理员和群友。
这是 android 12(api 31)开始系统强制开启 SplashScreen 新特性导致的。系统会在应用启动时先显示一个系统级启动画面(默认是白色背景 + 居中的应用图标,即你看到的黑白屏或大 logo),然后才进入你在 manifest.json 中配置的自定义启动页,所以会出现"两个启动页"的现象。海外 rom 大多开启了这个效果,国内 rom 大多默认关闭,因此在不同机型上表现不一致,属于碎片化问题。
完整的适配方案如下:
方案一:配置 Google SplashScreen(推荐)
在项目的 manifest.json 文件中,找到"App启动界面配置"下的"Google SplashScreen配置"项,配置背景颜色、各分辨率的居中 logo 图标、底部品牌图标。将系统启动画面的背景色和 logo 配置成与你的自定义启动页一致的风格,这样系统 splash 到自定义启动页的过渡就不会突兀。详细说明见文档:Google SplashScreen配置
方案二:设置启动页透明
在 manifest.json 源码视图中配置:
"app-plus" : {
"distribute" : {
"splashscreen" : {
"androidTranslucent" : true
}
}
}
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
该方案来自社区同类问题的反馈,部分机型(如一加、oppo 部分机型)验证有效,可参考:自定义启动页时、一加手机出现两个启动界面、添加自定义启动图后会先出现APP的logo再显示启动页
方案三:解决底部导航栏闪白
如果自定义启动图后部分设备出现系统导航栏启动时闪白,可配置 androidNavigationBarColor,要求颜色值与启动图背景颜色相近(HBuilderX 5.0 及以上版本支持):
"app-plus" : {
"distribute" : {
"splashscreen" : {
"androidNavigationBarColor" : "#000000"
}
}
}
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
详见:App Splashscreen配置
注意事项
- splash 相关改动需要云打包后生效,真机运行(标准基座)不生效,修改后请重新云打包再验证。
- 建议方案一和方案二结合使用:先通过 Google SplashScreen 配置让系统启动画面与自定义启动页视觉统一,再视机型表现决定是否加 androidTranslucent。
- 由于各 rom 碎片化严重,建议在小米、华为、oppo、vivo、一加等不同品牌真机上分别验证效果。
1 个回复
Ask小助手 - Ask社区AI助手
这是 android 12(api 31)开始系统强制开启 SplashScreen 新特性导致的。系统会在应用启动时先显示一个系统级启动画面(默认是白色背景 + 居中的应用图标,即你看到的黑白屏或大 logo),然后才进入你在 manifest.json 中配置的自定义启动页,所以会出现"两个启动页"的现象。海外 rom 大多开启了这个效果,国内 rom 大多默认关闭,因此在不同机型上表现不一致,属于碎片化问题。
完整的适配方案如下:
方案一:配置 Google SplashScreen(推荐)
在项目的 manifest.json 文件中,找到"App启动界面配置"下的"Google SplashScreen配置"项,配置背景颜色、各分辨率的居中 logo 图标、底部品牌图标。将系统启动画面的背景色和 logo 配置成与你的自定义启动页一致的风格,这样系统 splash 到自定义启动页的过渡就不会突兀。详细说明见文档:Google SplashScreen配置
方案二:设置启动页透明
在 manifest.json 源码视图中配置:
该方案来自社区同类问题的反馈,部分机型(如一加、oppo 部分机型)验证有效,可参考:自定义启动页时、一加手机出现两个启动界面、添加自定义启动图后会先出现APP的logo再显示启动页
方案三:解决底部导航栏闪白
如果自定义启动图后部分设备出现系统导航栏启动时闪白,可配置 androidNavigationBarColor,要求颜色值与启动图背景颜色相近(HBuilderX 5.0 及以上版本支持):
详见:App Splashscreen配置
注意事项
要回复问题请先登录或注册
公告
更多>相关问题