1. 程式人生 > >Cordova專案的圖示和啟動畫面

Cordova專案的圖示和啟動畫面

Phonegap/Cordova專案中的config.xml檔案,裡面配置了下面的內容:

<icon gap:platform="android" gap:qualifier="ldpi" src="res/icon/android/icon-36-ldpi.png" />
<icon gap:platform="android" gap:qualifier="mdpi" src="res/icon/android/icon-48-mdpi.png" />
<icon gap:platform="android" gap:qualifier="hdpi" src="res/icon/android/icon-72-hdpi.png"
/>
<icon gap:platform="android" gap:qualifier="xhdpi" src="res/icon/android/icon-96-xhdpi.png" /> <icon gap:platform="blackberry" src="res/icon/blackberry/icon-80.png" /> <icon gap:platform="blackberry" gap:state="hover" src="res/icon/blackberry/icon-80.png" /> <icon gap:platform="ios" height
="57" src="res/icon/ios/icon-57.png" width="57" />
<icon gap:platform="ios" height="72" src="res/icon/ios/icon-72.png" width="72" /> <icon gap:platform="ios" height="114" src="res/icon/ios/icon-57-2x.png" width="114" /> <icon gap:platform="ios" height="144" src="res/icon/ios/icon-72-2x.png" width
="144" />
<icon gap:platform="webos" src="res/icon/webos/icon-64.png" /> <icon gap:platform="winphone" src="res/icon/windows-phone/icon-48.png" /> <icon gap:platform="winphone" gap:role="background" src="res/icon/windows-phone/icon-173.png" /> <gap:splash gap:platform="android" gap:qualifier="port-ldpi" src="res/screen/android/screen-ldpi-portrait.png" /> <gap:splash gap:platform="android" gap:qualifier="port-mdpi" src="res/screen/android/screen-mdpi-portrait.png" /> <gap:splash gap:platform="android" gap:qualifier="port-hdpi" src="res/screen/android/screen-hdpi-portrait.png" /> <gap:splash gap:platform="android" gap:qualifier="port-xhdpi" src="res/screen/android/screen-xhdpi-portrait.png" /> <gap:splash gap:platform="blackberry" src="res/screen/blackberry/screen-225.png" /> <gap:splash gap:platform="ios" height="480" src="res/screen/ios/screen-iphone-portrait.png" width="320" /> <gap:splash gap:platform="ios" height="960" src="res/screen/ios/screen-iphone-portrait-2x.png" width="640" /> <gap:splash gap:platform="ios" height="1136" src="res/screen/ios/screen-iphone-portrait-568h-2x.png" width="640" /> <gap:splash gap:platform="ios" height="1024" src="res/screen/ios/screen-ipad-portrait.png" width="768" /> <gap:splash gap:platform="ios" height="768" src="res/screen/ios/screen-ipad-landscape.png" width="1024" /> <gap:splash gap:platform="winphone" src="res/screen/windows-phone/screen-portrait.jpg" />

這個 res/icon和res/screen目錄是相對於phonegap專案目錄的 ,也就是類似phonegap/res/icon/android/icon-36-ldpi.png,你的 圖示和啟動畫面必須在這兩個目錄下 。

phonegap3.5以前的config.xml中src="res/........",phonegap3.5開始變為了src="www/res/.......",而實際圖示和啟動畫面檔案都是存在於www/res下面的。因此phonegap3.4沒應用上圖示和啟動畫面是情有可原的(因為路徑沒指定對)。

不過儘管將src改為"www/res/.......",也將我們自己的圖示和啟動畫面檔案放在了phonegap/www/res/...下,

但是最後build之後的安卓專案和ios專案,圖示和啟動畫面還是沒有我們自己的。

後來看了Cordova文件,對config.xml做了一些修改,才配置成功。

1、去掉上面config.xml中的圖示和啟動畫面配置,改為下面的

<platform name="android">
  <icon src="res/icon/android/icon-36-ldpi.png" density="ldpi" />
  <icon src="res/icon/android/icon-48-mdpi.png" density="mdpi" />
  <icon src="res/icon/android/icon-72-hdpi.png" density="hdpi" />
  <icon src="res/icon/android/icon-96-xhdpi.png" density="xhdpi" />
  <splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi"/>
  <splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi"/>
  <splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi"/>
  <splash src="res/screen/android/splash-land-xhdpi.png" density="land-xhdpi"/>
  <splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>
  <splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>
  <splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>
  <splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>
</platform>
<platform name="ios">
  <icon src="res/icon/ios/[email protected]" width="180" height="180" />
  <icon src="res/icon/ios/icon-60.png" width="60" height="60" />
  <icon src="res/icon/ios/[email protected]" width="120" height="120" />
  <icon src="res/icon/ios/icon-76.png" width="76" height="76" />
  <icon src="res/icon/ios/[email protected]" width="152" height="152" />
  <icon src="res/icon/ios/icon-40.png" width="40" height="40" />
  <icon src="res/icon/ios/[email protected]" width="80" height="80" />
  <icon src="res/icon/ios/icon.png" width="57" height="57" />
  <icon src="res/icon/ios/[email protected]" width="114" height="114" />
  <icon src="res/icon/ios/icon-72.png" width="72" height="72" />
  <icon src="res/icon/ios/[email protected]" width="144" height="144" />
  <icon src="res/icon/ios/icon-small.png" width="29" height="29" />
  <icon src="res/icon/ios/[email protected]" width="58" height="58" />
  <icon src="res/icon/ios/icon-50.png" width="50" height="50" />
  <icon src="res/icon/ios/[email protected]" width="100" height="100" />
  <splash src="res/screen/ios/Default~iphone.png" width="320" height="480"/>
  <splash src="res/screen/ios/[email protected]~iphone.png" width="640" height="960"/>
  <splash src="res/screen/ios/Default-Portrait~ipad.png" width="768" height="1024"/>
  <splash src="res/screen/ios/[email protected]~ipad.png" width="1536" height="2048"/>
  <splash src="res/screen/ios/Default-Landscape~ipad.png" width="1024" height="768"/>
  <splash src="res/screen/ios/[email protected]~ipad.png" width="2048" height="1536"/>
  <splash src="res/screen/ios/[email protected]~iphone.png" width="640" height="1136"/>
</platform>
2、你需要準備好你自己的app圖示和啟動畫面png檔案:

安卓圖示具體規格如下(存放目錄:phonegap/res/icon/android/)

icon-36-ldpi.png 36×36
icon-48-mdpi.png 48×48
icon-72-hdpi.png 72×72
icon-96-xhdpi.png 96×96

安卓啟動畫面具體規格如下(存放目錄:phonegap/res/screen/android/)

splash-land-hdpi.png 640×480
splash-land-ldpi.png 426×320
splash-land-mdpi.png 470×320
splash-land-xhdpi.png 960×720
splash-port-hdpi.png 480×640
splash-port-ldpi.png 320×426
splash-port-mdpi.png 320×470
splash-port-xhdpi.png 720×960

iOS圖示具體規格如下(存放目錄:phonegap/res/icon/ios/)

[email protected] 180×180
icon-60.png 60×60
[email protected] 120×120
icon-76.png 76×76
[email protected] 152×152
icon-40.png 40×40
[email protected] 80×80
icon.png 57×57
[email protected] 114×114
icon-72.png 72×72
[email protected] 144×144
icon-small.png 29×29
[email protected] 58×58
icon-50.png 50×50
[email protected] 100×100

iOS啟動畫面具體規格如下(存放目錄:phonegap/res/screen/ios/)

Default~iphone.png 320×480
[email protected]~iphone.png 640×960
Default-Portrait~ipad.png 768×1024
[email protected]~ipad.png 1536×2048
Default-Landscape~ipad.png 1024×768
[email protected]~ipad.png 2048×1536
[email protected]~iphone.png 640×1136
Default-667h.png 750×1334( 好像 cordova4.0才支援)
Default-736h.png 1242×2208  (好像cordova4.0才支援)
Default-Landscape-736h.png 2208×1242 (好像cordova4.0才支援)

3、如何顯示splashscreen啟動畫面?

iOS預設可以啟用啟動畫面 ,安裝到手機後執行就可以看到;

安卓 的的話本來也是預設也有啟動畫面的,只不過因為 配置有問題,沒有顯示出來,原因如下:

phonegap生成安卓專案的時候,會自動把phonegap/res/screen/android/ 下面的各個圖片檔案 命名為screen.png,放到安卓專案的各個 res/drawable* 目錄底下 ,而在CordovaLib\src\org\apache\cordova\Config.java中指定的檔名卻是"splash.png"。app啟動時找不到splash.png,所以就沒顯示。

因此,我們要在config.xml中新增下面兩個preference配置,用"SplashScreen"指定檔名為screen.png:

<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="3000" />
"SplashScreenDelay"指定啟動畫面多長時間後自動隱藏,這裡配置了3000ms,也就是3秒鐘。

4、好了,到這就配置完畢了,重新build你的phonegap專案吧,你的安卓和ios都能顯示你自己的圖示和啟動畫面了。

ps:我推薦是每次buildphonegap專案的時候都將以下目錄和檔案刪除後再build:

對於安卓,刪除phonegap/plugins/android.json檔案和phonegap/platforms/android資料夾

對於ios,刪除phonegap/plugins/ios.json檔案和phonegap/platforms/ios資料夾

但是有的手機速度慢,或者js和css檔案大,上面設定的 3秒鐘根本不足夠js和css載入完 ,這時就會出現啟動畫面隱藏了,然後 黑屏或者白屏幾秒種,然後才出現we