做
Native
端开发的小伙伴都知道,应用在启动时会有短暂的白屏现象,我们可以利用插件解决此问题,这里我们主要讲ReactNative
在启动时,借助react-native-splash-screen
修复这个问题的方法。
安装
# 在项目中安装插件
npm install react-native-splash-screen --save
cd ios && pod install
Android 配置
首先在
anroid/app/build.gradle
中添加下面的配置
dependencies {
implementation project(':react-native-splash-screen') // import splash
}
在
android/res/*
下面添加layout
文件夹, 在里面添加launch_screen.xml
,其次在android/res/*
下面添加drawable
文件夹📂,这里存放你的启动页(注意📢,这里可以根据像素设置文件夹, 例如drawable-hdpi)会按照设备大小适配。drawable/launch_screen.png
<!-- launch_screen.xml -->
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/launch_screen" android:scaleType="centerCrop" />
</RelativeLayout>
上面的配置好以后, 在android/values
文件夹📂下新建 colors.xmnl
<!-- colors.xml 这里用来设置配色 -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="primary_dark">#000000</color>
</resources>
修改 values/styles.xml
<!-- 设置背景透明 -->
<item name="android:windowIsTranslucent">true</item>
上面的配置文件修改好后, 我们来写
java
代码, 在项目android/app/scr/main/res/*
, 来修改
// MainActivity.java
import com.facebook.react.ReactActivity;
import org.devio.rn.splashscreen.SplashScreen;
@Override
protected void onCreate(Bundle savedInstanceState) {
// this add line
SplashScreen.show(this);
super.onCreate(savedInstanceState);
}
IOS 配置
#import "RNSplashScreen.h"
[RNSplashScreen show];
打开 Xcode
, 进行下图的配置
使用
import SplashScreen from 'react-native-splash-screen';
setTimeout(() => {
SplashScreen.hide();
}, 2500);