Skip to content

快速开始

react-native-splash-screen-newarch 在 React Native 初始化期间保持原生启动画面可见。你的首屏准备完成后,再由 JavaScript 调用 hide() 完成原生画面到 React UI 的交接。

环境要求

目标要求
React Native0.76 及以上
ExpoSDK 52 及以上,使用 prebuild 或 development build
Android默认 minSdkVersion 24
iOS15.1 及以上

Expo Go 不支持

本包包含 Android 和 iOS 原生代码。Expo 项目必须重新生成并构建 development client。

安装

bash
npm install react-native-splash-screen-newarch

React Native CLI 的 iOS 项目还需要安装 CocoaPods 依赖:

bash
cd ios
pod install
cd ..

选择接入方式

项目下一步
Expo prebuild / development build使用 Expo config plugin 自动生成双端配置
React Native CLI Android完成 Android 手动配置
React Native CLI iOS完成 iOS 手动配置

在首屏准备后隐藏

等待导航、字体和首屏渲染所需的数据准备完成,再调用 hide()

tsx
import { useEffect } from 'react';
import SplashScreen from 'react-native-splash-screen-newarch';

export default function App() {
  useEffect(() => {
    SplashScreen.hide({
      animation: 'zoomOutFade',
      duration: 250,
      scale: 0.92,
      easing: 'easeOut',
    });
  }, []);

  return null;
}

hide() 过早会暴露尚未渲染的根视图,造成白屏或黑屏闪烁;过晚则会让用户误以为 App 卡住。应以首屏可以稳定绘制为边界,而不是设置固定延时。

重新构建原生 App

安装或修改原生启动资源后,仅刷新 Metro 不会生效。请重新构建:

bash
# Expo
npx expo prebuild
npx expo run:android
# 或 npx expo run:ios

# React Native CLI
npx react-native run-android
# 或 npx react-native run-ios

接下来

Released under the MIT License.