Skip to content

兼容性与模式选型

支持范围

目标支持范围说明
React Native0.76+通过 codegen 支持 TurboModule;在仍支持旧架构的版本中保留 Bridge 回退
ExpoSDK 52+仅支持 prebuild、development build 或 EAS Build
AndroidAPI 24+Android 12+ 的最早启动阶段始终由系统控制
iOS15.1+系统 Launch Screen 必须是静态 storyboard

React Native 0.82 及以上只提供新架构。本包的 JavaScript API 在 TurboModule 和 Bridge 回退路径中保持一致。

Android 模式对比

能力systemdialog(默认)
启动开销最低需要加载 layout 并创建原生 Dialog
图片形态居中 Logo + 纯色背景居中 Logo、全屏图片、NinePatch
自定义隐藏动画不支持,直接退出系统启动屏支持
启动后再次 show()不支持支持
Android 12+ 视觉一致性最接近系统规范系统阶段后切换到全屏内容

选择 system

满足以下条件时优先选择:

  • 启动速度比全屏视觉表现更重要。
  • 启动画面是居中 Logo 和单色背景。
  • 不需要在 Android 上播放自定义隐藏动画。
  • 不会在正常启动完成后再次调用 show()

选择 dialog

满足以下任一条件时保留默认模式:

  • 启动图需要铺满整个屏幕。
  • 使用 .9.png 或复杂的 XML layout。
  • 需要 fadeslideUpFadezoomOutFade 等退场动画。
  • 业务流程中需要再次显示原生启动视图。

图片选型

Android 系统启动图标存在尺寸和遮罩限制,不能把全屏海报直接当作 windowSplashScreenAnimatedIcon。全屏图片应使用 dialog 模式;system 模式应提供带透明留白的 Logo 资源,并在常见屏幕密度和 Android 12+ 设备上检查实际尺寸。

iOS Launch Screen 也不能包含动态内容、WebView 或运行时代码。动画实际作用于 App 启动后由本包创建的原生覆盖层。

Expo 与 React Native CLI

Expo config plugin 会自动修改 MainActivityAppDelegate、主题和资源,适合绝大多数 Expo 项目。React Native CLI 项目则需要手动维护原生文件。不要在同一个生成结果上同时重复插入手动调用和插件调用。

Released under the MIT License.