react-native-splash-screen集成實踐(ios & android)

react-native在啟動的時候會有瞬間的白屏出現(xiàn)煤辨,ios白屏?xí)r間會很短称鳞,安卓要相對長一些纤壁,大概1-3s時間雅镊。這是react-native的工作機制決定的襟雷。 react-native在啟動時會裝載js bundle到內(nèi)存并渲染界面,這段時間界面是一個空View.
上面的過程我們稱之為項目的初始化仁烹,那么在這段項目初始化的過程中我們?yōu)榱擞懈玫挠脩趔w驗需要渲染一個對用戶友好的界面來代替白屏耸弄,畢竟白屏對用戶不太友好,你可以理解為跟h5中的loading是一個意思卓缰。然而配置原生的啟動圖不像我們加個loading那么簡單计呈,react-native-splash-screen幫我們封裝了大部分配置砰诵,我們需要做部分的集成就可以使用,以下是配置教程:
一捌显、下載 react-native-splash-screen:
在項目根目錄運行終端執(zhí)行以下命令

  yarn  add react-native-splash-screen
    或者
  npm install react-native-splash-screen --save

特別注意 目前npm5存在安裝新庫時會刪除其他庫的問題茁彭,導(dǎo)致項目無法正常運行。請盡量使用yarn代替npm操作扶歪;

二理肺、安裝:
運行終端執(zhí)行以下命令進行自動安裝

react-native link react-native-splash-screen 

三、配置react-native部分击罪,在你的首頁導(dǎo)入react-native-splash-screen哲嘲,在componentDidMount中執(zhí)行hide隱藏啟動屏(當然這不是必須的,按照你的需要在適當?shù)臅r候隱藏它就行):

image.png

四媳禁、配置啟動圖:

(一) ios部分:

1、打開ios目錄下的AppDelegate.m文件画切,導(dǎo)入啟動屏包竣稽。在return之前執(zhí)行顯示啟動屏幕。

b12.png

2抚岗、用Xcode打開ios工程挂据,找到Image.xcassets并點擊選中熄捍,在空白處選擇 App Icons & Launch Images ? New ios Launch Image , 完成這步后會生成一個LaunchImage

b2.png

3、選中Image.xcassets ? LaunchImage岛宦,就是上一步創(chuàng)建的LaunchImage,右側(cè)框中的部分是讓你選擇要支持的系統(tǒng)耍缴,橫豎屏之類的(這個按照需求選擇砾肺,如果你的項目不打算支持ios6可以不選擇)。然后點擊中間部分選中一個分辨率的框防嗡,上傳相應(yīng)分辨率的圖片作為啟動屏幕(注意:這里的分辨率一定要對变汪,如果比例不對傳不上去)

以下是選擇框中不同屏幕的分辨率:

iPhone Portrait iOS 8-Retina HD 5.5 (1242×2208) @3x
iPhone Portrait iOS 8-Retina HD 5.5 (1242×2208) @3x
iPhone Portrait iOS 8-Retina HD 4.7 (750×1334) @2x
iPhone Portrait iOS 7,8-2x (640×960) @2x
iPhone Portrait iOS 7,8-Retina 4 (640×1136) @2x
iPhone Portrait iOS 5,6-1x (320×480) @1x
iPhone Portrait iOS 5,6-2x (640×960) @2x
iPhone Portrait iOS 5,6-Retina4 (640×1136) @2x
b3.png

4、選中LaunchScreen.xib,會有個彈出框蚁趁,默認選擇確定就行裙盾,然后把右邊的 Use Launch Screen 取消選中(因為ios可以用來自定義圖片啟動屏幕或通過 LaunchScreen.xib花一個啟動屏幕,ios默認花了一個他嫡,因為我們用的是圖片所以要取消它)番官。

b10.png

5、如圖選中項目工程钢属,右側(cè)會出現(xiàn)工程的基本配置徘熔,設(shè)置Launch Images Srouce配置為LaunchImage(如果沒有LaunchImage會彈出一個框提示拷貝圖片,按照默認點確定就行)署咽,然后設(shè)置Launch Screen File為空(這個很重要)近顷。

b4.png

6生音、預(yù)覽效果(上傳后圖片被刪幀壓縮太狠,效果不佳窒升,湊合看把)

start0.gif

(二) android部分:

1缀遍、打開MainActivity.java按照下圖1,2饱须,3步驟添加啟動屏包以及方法:

b14.png

2域醇、在 android/app/src/mian/res目錄下創(chuàng)建layout文件夾,并在創(chuàng)建的layout文件夾中創(chuàng)建launch_screen.xml

launch_screen.xml文件內(nèi)容如下

<?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蓉媳、在 android/app/src/mian/res目錄下創(chuàng)建drawable-xhdpi文件夾譬挚,并添加名為launch_screen.png的圖片(其實你要想適配的更全面可以像mipmap一樣添加不同分辨率的圖片)

image.png

4、預(yù)覽效果

an_bf.gif

但是感覺還是優(yōu)點瑕疵酪呻,還是有一瞬間的白屏减宣,這時候需要在android/app/src/main/res/values/styles.xml中添加 <item name="android:windowIsTranslucent">true</item> 設(shè)置透明背景

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <!--設(shè)置透明背景-->
  <item name="android:windowIsTranslucent">true</item>
</style>

</resources>

接下來看下設(shè)置透明背景后的效果

an0101.gif

完美收官!

項目demo地址:https://github.com/duheng/Mozi

THE END玩荠!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漆腌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子阶冈,更是在濱河造成了極大的恐慌闷尿,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件女坑,死亡現(xiàn)場離奇詭異填具,居然都是意外死亡,警方通過查閱死者的電腦和手機匆骗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門劳景,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绰筛,你說我怎么就攤上這事枢泰。” “怎么了铝噩?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵衡蚂,是天一觀的道長。 經(jīng)常有香客問我骏庸,道長毛甲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任具被,我火速辦了婚禮玻募,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘一姿。我一直安慰自己七咧,他們只是感情好跃惫,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著艾栋,像睡著了一般爆存。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蝗砾,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天先较,我揣著相機與錄音,去河邊找鬼悼粮。 笑死闲勺,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的扣猫。 我是一名探鬼主播菜循,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼申尤!你這毒婦竟也來了债朵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瀑凝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后臭杰,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粤咪,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年渴杆,在試婚紗的時候發(fā)現(xiàn)自己被綠了寥枝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡磁奖,死狀恐怖囊拜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情比搭,我是刑警寧澤冠跷,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站身诺,受9級特大地震影響蜜托,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜霉赡,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一橄务、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧穴亏,春花似錦蜂挪、人聲如沸重挑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谬哀。三九已至,卻和暖如春故爵,著一層夾襖步出監(jiān)牢的瞬間玻粪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工诬垂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留劲室,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓结窘,卻偏偏與公主長得像很洋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子隧枫,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容