react native bundle读取assets_react-native-splash-screen 正确配置

最近研究下React Native ,初次启动APP有白屏的现象,为了美化APP, 在网上找了一些插件,下载量最多的是 react-native-splash-screen ,但是,插件最新的版本还是一年前,照着npm 官方流程做下来还是会报错 , react-native-splash-screen

下面是记录下成功的操作过程,

首先下载安装包: npm i react-native-splash-screen --save

官方分自动安装 ,还有手动安装 ,我们这里采用手动安装

  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')

a4e576eb436862cd7befd4c48ed02212.png

2. android/app/build.gradle目录下中的 dependencies 对象,引入该安卓包:

implementation project(':react-native-splash-screen')

3a9b3ee4f929629401ceb3a395e76a11.png

3. android/app/src/main/java/com/xxxxx/MainActivity.java目录下,引入该安卓包:

import android.os.Bundle;  
import org.devio.rn.splashscreen.SplashScreen; 

@Override
   protected void onCreate(Bundle savedInstanceState) {
        SplashScreen.show(this);  // here 
   super.onCreate(savedInstanceState);
 }

23283b8e19b647d972ce502504ab227e.png

4. android/app/src/main/java/com/xxxxx/MainActivity.java 引入以下代码

 import org.devio.rn.splashscreen.SplashScreenReactPackage;

48e092d6aa01000ae8add2635ce448e4.png

官方文档给出的 该文件后面的代码不需要添加 ,因为项目React Native项目结构的改变 自动引入

5. android/app/src/main/res下创建layout文件夹,在layout文件夹下创建launch_screen.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/launch_screen">
</LinearLayout>

993bd354092d157c06180ef6e544a5e8.png

6. android/app/src/main/res/values文件夹下创建color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="primary_dark">#000000</color>
</resources>

a1be41c2c19448aedcfa0d5a2d101382.png

7. android/app/src/main/res下创建名为drawable-xhdpi文件(注意:这里可以创建drawable其他尺寸的文件 ),图片名称:launch_screen

e48fea9e80deaf8bdc35da867b7c1aff.png

8. 在App.js下添加以下代码:

import SplashScreen from 'react-native-splash-screen';
componentDidMount() {
        SplashScreen.hide();
}

d964557a551f5a59e3fab57939138274.png

9. 重新编译运行 react-native run-android / yarn android

eg : 虽然是成功了不过还是有些不完美,还是有一点白屏的存在,这时我们打开

android/app/src/main/res/values/styles.xml文件,添加<item name="android:windowIsTranslucent">true</item>,如下 :

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <!--设置透明背景-->
        <item name="android:windowIsTranslucent">true</item> //<--添加这个
    </style>
</resources>

90ea11ee3199208d34fdd5c1904ab9c1.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值