[Cordova] 在 Mac 上安裝 Cordova 與建立第一個 HelloWorld 專案

[Cordova] 在 Mac 上安裝 Cordova 與建立第一個 HelloWorld 專案

自己寫的 圖書館多重帳戶登入 app 是使用 HTML+CSS+JavaScript 寫的,

只是包上一個 Android 的殼,因此其實可以也複製到 iOS 上面~

沒想到這個概念很早以前就已經有人想過了,

做出了 Phonegap 這個專案,

後來又被捐獻到 Apache Foundation 變成 Cordova 專案~

 

不過 Phonegap 和 Cordova 的差異讓我搞不清楚好一陣子,

看一下 Phonegap 的說明文件時,有時會連到 Cordova 的文件,

然後指令又有點不同,真的是蠻困擾的…

後來看了這篇 PhoneGap 與 Cordova 的實際差異

決定還是直接用 Cordova,比較不會出問題囉~

 

使用 Cordova 的動機是想把目前在 Android 上的 圖書館多重帳戶登入 app

也複製到 iOS 上面,這樣就能同時支援 Android/iOS 了~

不過還是先按步就班,先把 Cordova 裝好,

並且確定 HelloWorld 專案可以成功執行吧~

 

參考資料:

Cordova: The Command-Line Interface

Cordova: Android Platform Guide

Cordova: iOS Platform Guide

 

1. 準備好 Android build 環境

首先要確定電腦上可以編譯 Android 程式,

可以參考 將 eclipse 專案移轉至 Android Studio 上 這一篇,

把 Android Studio 和 Android SDK 裝好~

 

同時也要確定要建立至少一個 Android AVD 給模擬器使用,

而且這個 AVD 目前必須至少是使用 Android 4.0 版以上的 SDK~

依照 Cordova: Android Platform Guide 的說明,

Cordova 會把在 Google Android Dashboard 上佔有率低於 5% 的,

排除於支援範圍內~

因此 2.x 和 3.x 版本的都已經不支援了~

 

另外,要確定 Android SDK 中的 platform-tools 和 tools 目錄,

已經有被加入 PATH 環境變數中,

在 Mac 上可以加到 ~/.bash_profile 裡面,例如:

export PATH=~/Library/Android/sdk/platform-tools:~/Library/Android/sdk/tools:/usr/local/bin:${PATH}

 

加入後最好是重新開機,確保所有的程式都會吃到正確的設定~

像我只在目前的 shell 設定好 PATH,雖然 adb 等指令都可以正常執行,

Cordova 在後面步驟執行模擬器時也沒有問題,

可是 HelloWorld 程式一直沒有被裝進模擬器去,

直到我 PATH 設定在 ~/.bash_profile 裡重開機後,這問題才解決~

 

2. 準備好 iOS build 環境

首先要先安裝好 Xcode,到 App Store 搜尋 Xcode 後安裝,

裝好後執行一下 Xcode,確定 Xcode 已經初始化完畢~

 

接著要用 npm 安裝 ios-sim 和 ios-deploy 兩個套件,

如果還沒裝過 Node.js 的話,記得裝一下 (可參考這裡):

npm install -g ios-sim
npm install -g ios-deploy

 

3. 安裝 Cordova

官方建議 用 npm 來安裝 Cordova:

sudo npm install -g cordova

 

4. 建立一個測試用的 Hello World 專案 

建立一個子目錄後,在裡面執行下面的指令,

來建立一個 Hello World 專案:

cordova create hello com.example.hello HelloWorld

 

上述的指令會建立一個 hello 目錄,

接下來的指令都是要在這個 hello 目錄下執行喔~

 

接著要加入支援的平台,我加入了 ios 和 android:

cordova platform add ios
cordova platform add android

 

可以執行 cordova platform 看目前已經加入的支援平台,

Cordova 還支援 Amazon FireOS,BlackBerry,FireFox OS 等等,

不過目前我還沒有想要支援它他 (畢竟我也沒手機可測,

而且那些平台目前應該不算普及):

testuser@localhost ~ $ cordova platform
Installed platforms: android 4.0.2, ios 3.8.0
Available platforms: amazon-fireos, blackberry10, browser, firefoxos

 

5. 執行 Hello World 程式

執行下面的指令,就可以分別把 Android 和 iOS 的模擬器跑起來,

在裡面執行 Hello World 程式:

cordova emulate android
cordova emulate ios

 

如果目前在 Android 模擬器那邊已經建立了多個 AVD 的話,

跑起來的可能不是我們要的那個,

可以執行下面的指令先看一下目前有的 AVD:

testuser@localhost ~ $ cordova run android --list
Available android devices:
Available android virtual devices:
Nexus_4_API_15
Nexus_S_API_8

 

像我想指定 Nexus_4_API_15 這個 AVD 的話,可以這麼做:

cordova run android --target=Nexus_4_API_15

 

下面就是 Android 和 iOS 模擬器,

分別把 Hello World 專案執行起來的畫面:

Screen Shot 2015-07-11 at 9.58.23 AM   Screen Shot 2015-07-11 at 9.59.36 AM  

 

這樣子就算大功告成囉~

之後把自己的 app 搬到 Cordova 成功的話,再來分享一篇吧~

 

 

 

(本頁面已被瀏覽過 2,485 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料