react-native 闪屏

app闪屏是一个常见的需求,今天我们来说一下使用 react-native-splash-screen组件实现闪屏功能。

一、具体使用

(一)安装
  1. 使用安装命令npm i react-native-splash-screen --save进行安装
  2. 使用命令react-native link react-native-splash-screenlink

注:我安装的版本是3.0.0,最新版用法请查看react-native-splash-screen

iOS
  1. 在Xcode中点击Library,选择Add Files to [your project's name],选择node_modules ➜ react-native-splash-screen 添加SplashScreen.xcodeproj
sybil052-20180906-14381.png
  1. 在Build PhasesLink ➜ Binary With Libraries中添加libSplashScreen.a
sybil052-20180906-143957.png
  1. 在Build Settings ➜ Search Paths ➜ Header Search Paths中添加$(SRCROOT)/../node_modules/react-native-splash-screen/ios
sybil052-20180906-144153.png
Android
  1. 找到android/settings.gradle文件,添加如下代码:
include ':react-native-splash-screen'   
project(':react-native-splash-screen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-screen/android')
  1. 在android/app/build.gradle文件中,添加如下代码:
...
dependencies {
    ...
    compile project(':react-native-splash-screen')
}
  1. 在 MainApplication.java中添加如下代码:
// 3.0.1以下版本
import com.cboy.rn.splashscreen.SplashScreenReactPackage;

public class MainApplication extends Application implements ReactApplication {

    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
        @Override
        public boolean getUseDeveloperSupport() {
            return BuildConfig.DEBUG;
        }

        @Override
        protected List getPackages() {
            return Arrays.asList(
                    new MainReactPackage(),
                    new SplashScreenReactPackage()  // 这里添加
            );
        }
    };

    @Override
    public ReactNativeHost getReactNativeHost() {
        return mReactNativeHost;
    }
}
(二)使用
iOS
  1. 在AppDelegate.m中添加:
#import "AppDelegate.h"

#import 
#import 
#import "SplashScreen.h"  //这里添加

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // ...其他代码

    [SplashScreen show];  // 这里添加
    return YES;
}

@end
  1. 将闪屏图片放入LaunchScreen.xib
Android
  1. 在MainActivity.java中添加:
import com.cboy.rn.splashscreen.SplashScreen; //这里添加

public class MainActivity extends ReactActivity {
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        SplashScreen.show(this);  // 这里添加
        super.onCreate(savedInstanceState);
    }
    // ...其他代码
}
  1. 在app/src/main/res/layout中新建launch_screen.xml,添加如下代码:



  1. 将闪屏图片放入以下目录:
  • mipmap-hdpi
  • mipmap-mdpi
  • mipmap-xhdpi
  • mipmap-xxhdpi
  • mipmap-xxxhdpi

最后,在splash.js中添加如下代码:

import SplashScreen from 'react-native-splash-screen'

export default class WelcomePage extends Component {

    componentDidMount() {
        SplashScreen.hide();
    }
}

你可能感兴趣的:(react-native 闪屏)