(Android)react-native-splash-screen實踐-解決react-native打包好後啟動白屏的問題

來源:互聯網
上載者:User

標籤:main   def   dir   com   分享圖片   技術分享   custom   resource   cti   

1.安裝
npm i react-native-splash-screen --save or
yarn add react-native-splash-screen --save
2.自動設定
react-native link react-native-splash-screen or rnpm link react-native-splash-screen
or 3.手動設定3.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‘)
3.2  android/app/build.gradle 
...dependencies {    ...    compile project(‘:react-native-splash-screen‘)}
3.3 MainApplication.java
// react-native-splash-screen >= 0.3.1 import org.devio.rn.splashscreen.SplashScreenReactPackage;// react-native-splash-screen < 0.3.1 // import com.cboy.rn.splashscreen.SplashScreenReactPackage; public class MainApplication extends Application implements ReactApplication {     private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {        @Override        protected boolean getUseDeveloperSupport() {            return BuildConfig.DEBUG;        }         @Override        protected List<ReactPackage> getPackages() {            return Arrays.<ReactPackage>asList(                    new MainReactPackage(),            new SplashScreenReactPackage()  //here             );        }    };     @Override    public ReactNativeHost getReactNativeHost() {        return mReactNativeHost;    }}
3.4 MainActivity.java
import android.os.Bundle; // here import com.facebook.react.ReactActivity;// react-native-splash-screen >= 0.3.1 import org.devio.rn.splashscreen.SplashScreen; // here // react-native-splash-screen < 0.3.1 // import com.cboy.rn.splashscreen.SplashScreen; // here  public class MainActivity extends ReactActivity {   @Override    protected void onCreate(Bundle savedInstanceState) {        SplashScreen.show(this);  // here         super.onCreate(savedInstanceState);    }    // ...other code }
3.5 在 app/src/main/res/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>
3.6 在app/src/main/res/drawable/ 下加入launch_screen.png圖片3.7 設定透明背景android/app/src/main/res/values/styles.xml
<resources>    <!-- Base application theme. -->    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">        <!-- Customize your theme here. -->        <!--設定透明背景-->        <item name="android:windowIsTranslucent">true</item>    </style></resources>
3.8 react-native run-android失敗 提示tool:replace allbackup
<manifest xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    package="包名">application節點添加<application tools:replace="android:allowBackup" ...
3.9 android 閃退 需要添加android/app/src/main/res/values/colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="primary_dark">#660B0B0B</color> </resources>

https://github.com/crazycodeboy/react-native-splash-screen/issues/149

4.用法
import SplashScreen from ‘react-native-splash-screen‘ export default class WelcomePage extends Component {     componentDidMount() {        // do stuff while splash screen is shown        // After having done stuff (such as async tasks) hide the splash screen        SplashScreen.hide();    }}

 

(Android)react-native-splash-screen實踐-解決react-native打包好後啟動白屏的問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.