zoukankan      html  css  js  c++  java
  • react-native启动页面设置,react-native-splash-screen

    用于解决iOS和Android启动白屏问题及简单的启动页面展示

    下载 react-native-splash-screen

    yarn add react-native-splash-screen
    
    react-native link react-native-splash-screen

    android 配置:

    检查配置:

    1、androidsettings.gradle

    include ':react-native-splash-screen'
    project(':react-native-splash-screen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-screen/android')

    如图:

     2、androidappuild.gradle

    dependencies {
        compile project(':react-native-splash-screen')
      .....      
    }

    3、android/app/src/main/java/com/.../MainApplication.java

    import org.devio.rn.splashscreen.SplashScreenReactPackage;
    
    
    new SplashScreenReactPackage(),

    以上3步都是 在link 之后就自动加上了的

    4、在android/app/src/main/java/com/.../MainActivity.java文件下添加以下代码

    ...
    import android.os.Bundle;  //add 
    import org.devio.rn.splashscreen.SplashScreen; //add
    ...
    public class MainActivity extends ReactActivity {
    ...
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            SplashScreen.show(this);   //add
            super.onCreate(savedInstanceState);
        }
    }

    5、然后在android/app/src/main/res文件夹下创建 layout 文件夹,并在下面  启动页的XML文件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="@mipmap/launch_screen"> //该路径为后面设置的启动图片位置
    </LinearLayout>

    6、以上运行后即可展示出启动页面,但仍有白屏闪过在android/app/src/main/res/values/styles.xml加入代码

    <resources>
    
        <!-- Base application theme. -->
        <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
            ...
            <item name="android:windowIsTranslucent">true</item> //用于设置透明白背景
            ...
        </style>
    
    </resources>

    补充:

    在  react-native-splash-screen  最近更新后,应该是2018.8.1日更新的,依赖提升了

    在运行的时候会报错 : 

    Could not find com.android.support:appcompat-v7:26.1.0

    可以对比下:

    解决办法:

    1.根据依赖包 下面的 build.gradle文件 修改  android/app/build.gradle 中的配置项 如下图

    2. 在项目工程中 android/build.gradle 文件中加入 ,如图

    maven { url "https://maven.google.com" }

    然后就可以了

    ios 配置:

      在AppDelegate.m文件中加入如下代码

      

    ...
    #import "SplashScreen.h"     //引入头文件
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    ..
      [SplashScreen show];   // 启动后进入启动页
      return YES;
    }
    
    @end

    2.设置启动图片来源 此处忽略不记录了,之前已经记录过了

    然后就是在react-native 中使用了,在需要关闭的地方关闭启动页就行了了

    import SplashScreen from 'react-native-splash-screen';
    
    componentDidMount() {
        setTimeout(SplashScreen.hide,2000);
    }
  • 相关阅读:
    react 组件间通信,父子间通信
    微信公众号配置及微信jsAPI支付
    Vue 幸运大转盘
    Hystrix断路器配置属性解析
    使用熔断器仪表盘监控(hystrix)
    使用熔断器防止服务雪崩
    创建服务消费者(Feign)
    Spring Cloud Ribbon配置详解
    创建服务消费者(Ribbon)
    创建服务提供者
  • 原文地址:https://www.cnblogs.com/bruce-gou/p/9255012.html
Copyright © 2011-2022 走看看