使用PhoneGap Build

本文承接上篇《開發Android平臺的Cordova應用》。html

有Cordova CLI出現以前,在多種設備平臺上開發應用須要安裝各平臺的SDK,並把web內容在平臺項目間來回複製,也不能同時構建或測試多個應用。CLI解決了上述大部分問題,但仍是有侷限性。PhoneGap build提供了在雲端構建PhoneGap應用的方法,不須要在開發主機上安裝大量的軟件。開發人員要作的只是寫web應用內容並把文件上傳到雲端,剩下的工做都交給PhoneGap Build。web

接下來講說如何創建和使用PhoneGap Build服務打包Cordova應用,並把應用分享給其餘人。apache


什麼是PhoneGap Build

PhoneGap Build(https://build.phonegap.com)是基於雲端的用於PhoneGap應用的構建服務。它是收費的,但有免費的服務版本,還有幾個其餘功能的免費版。使用Build開發者能夠把應用加載到Build服務器的應用定義中,服務器就會自動構建爲每一個支持的移動平臺構建原生應用。以下圖說明了構建服務是如何工做的。瀏覽器

![](img/18.png)

快速構建原型

PhoneGap Build能夠構建web應用並部署到Native應用中,使開發者 不用安裝任何移動設備的SDK,節省下載、配置SDK的時間。安全

在PhoneGap Build中,web應用的源碼也能夠回傳給開發者,能夠再添加集成數據或其餘應用中的複雜部分。開發者能夠繼續使用PhoneGap Build或者在本地開發。服務器

協做

版本控制系統容許開發者在本地部署或在放在雲端的項目中協做,Build也容許開發者配置項目以便和其餘人共同開發同一個PhoneGap Build項目。開發者能夠只賦予測試人員只讀的權限,或者給其餘開發者讀/寫權限。網絡

Build容許開發者提供給其餘合做的開發人員隱藏的Build部分,只給其餘人構建的結果以方便他人進行測試。app

用Hydration更新內容

許多開發者使用Build的緣由是能夠提供給測試人員快速簡單的升級應用的方法。之前測試人員在測試設備上一按版本升級Native應用,Build用Hydration簡化了這個過程(https://build.phonegap.com/docs/advanced-hydration)。這個功能支持PhoneGap 2.0以上的版本,能夠用在Android或iOS平臺上。測試

啓用Hydration後,Build服務從服務器建立帶有web內容的應用的版本,而不是把web內容打包到應用中。這個功能明顯減小了構建時間,容許web內容用無線網絡反覆部署到應用中,這樣每次應用加載的都是可用的新版本。網站

當開發者上向構建服務上傳新版的web應用內容時,內容被打包發佈(不是打包成整個Native應用)。用戶下一次打開應用時,應用會提示用戶有新版本可用。以後用戶下載更新並替換當前應用。

Hydration功能是爲測試設計的,不該該使用在生產環境中。若是企業產品中須要這種功能,能夠參考SAP移動平臺(SMP),它的Kapsel組件提供生產環境下的無線web應用內容更新。


使用PhoneGapBuild

接下來講明一下如何使用PhoneGap Build。開始使用前首先要註冊一個賬號,以後用一個簡單的示例說明如何用Build服務建立PhoneGap應用,最後還會說明如何使用更多服務配置選項。登陸PhoneGap Build網站(http://build.phonegap.com),若是沒有賬號請註冊一個。

一個小例子

只是爲了說明如何使用PhoneGap Build,能夠建立一個簡單的html頁面,代碼以下:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Sample Application</title>
</head>
<body>
    <h1>Sample Application</h1>
    <p>This is a sample web application.</p>
</body>
</html>

登陸網站,若是以前沒有添加過應用,會打開建立第一個應用的頁面,或者在Build的主頁點擊"+"新建按鈕也能夠建立新應用。接下來,Build服務會打開以下圖所示的頁面,開發者能夠填一個Git repository的URI連接或者直接上傳文件(html文件須要打包成zip文件上傳)。

![19]()

上傳完成後,頁面顯示以下圖。由於沒有提供配置文件,Build默認設置應用的名字爲"PhoneGap Build",還能夠修改和添加簡介。

![20]()

若是選擇了Enable debugging checkbox,會在應用中啓用weinre調試(以前的文章Cordova應用技巧中提到過weinre),若是選擇了Enable hydration會啓用hydration功能(參考上面)。

在選好應用設置後,點擊Ready to build按鈕啓動打包過程,以後顯示的頁面以下圖。在這裏服務進行的是生成爲每一個支持平臺使用上傳web內容構建Native應用的任務。頁面會顯示每一個支持的平臺的圖標,若是圖標顯示爲灰色表示構建正在進行,藍色表示已經完成,而紅色表示失敗。失敗有時是由於build服務的故障,點擊Rebuild按鈕一般能夠修復,有時是由於一些特殊緣由,如沒有定義簽名密鑰。

![21]()

點擊應用標題或者下面某一個平臺圖標會打開一個頁面,裏邊有更多應用的細節,如應用在哪構建成功,在哪構建失敗。若是點擊紅色按鈕,頁面上會顯示致使構建失敗的錯誤信息。

![22]()

Apple對簽名密鑰要求很嚴,其餘大多數平臺則無關緊要或者不使用。因爲沒有密鑰致使構建失敗的解決方法是提供密鑰並從新構建,像上圖的失敗能夠點擊iOS處右側的下拉菜單選擇向項目添加一個key,以後在彈出的添加界面中能夠爲Key集合指定一個標題,這樣方便爲多個客戶工做的開發者爲不一樣的項目或客戶根所場景定義Key集合。

部署PhoneGap Build應用

構建完成後,Build容許你訪問每一個支持平臺中打包的應用。用戶能夠用不一樣的方式部署,這取決於設備商或運營商的支持。

最簡單的部署方法是用掃碼軟件掃描上圖右上方的二維碼,掃碼軟件把二維碼轉化URL,能夠在移動瀏覽器上打開連接,用戶只要按照頁面說明下載安裝便可。

若是想讓其餘用戶使用應用,可使用Collaborators設置。按照頁面的說明步驟爲每一個受權使用者定義一封電子郵件,使用者可使用的郵件地址登陸PhoneGap Build網站下載受權訪問的應用。

有時候只是想使用native應用的可執行文件。能夠在上圖中每一個支持平臺的右側的藍色按鈕,點擊下載相應的安裝包,如Android的apk文件;也能夠點擊二維碼下邊的Install按鈕下載所有構建完成的安裝包。

另外能夠在模擬器上打開移動瀏覽器,進入PhoneGap Build服務,點擊二維碼下邊的Install連接直接下載應用。

安裝應用時會提示啓用應用功能,能夠看到由於沒有告訴Build服務啓用或禁用什麼,默認開啓了所有功能權限。

配置PhoneGap Build 應用

若是不配置PhoneGap Build,它會使用默認配置。PhoneGap Build使用config.xml文件配置,這個文件定義爲W3C Widget Packaging的一部分,使用XML配置規範。

把config.xml文件同web應用內容打包成zip格式,服務會使用config.xml文件的屬性設置和安全設置。CLI在建立應用時生成了一個config.xml,內容以下:

<>xml version="1.0" encoding='utf-8'?>
<widget id="com.cordovaprogramming.HelloWorld" version="0.0.1"
    xmlns="http://www.w3.org/ns/widgets"
    xmlns:cdv="http://cordova.apache.org/ns/1.0>
    <name>Hello World 4</name>
    <description>A Sample Apache Cordova application that
        responds to the deviceready event.</description>
    <author email="dev@callback.apache.org" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <access orgin="*" />
    <preference name="fullscreen" value="true" />
    <preference name="webviewbounce" value="true" />
 </widget>

上面配置內容僅有一些描述應用和關於應用選項的信息,你能夠修改一下namedescription節,並和應用一塊兒打包上傳到PhoneGap,能夠看到相應的變化。

由於要用在不一樣平臺和各自的項目設置,實際上的config.xml文檔要複雜的多,要配置多用於多個平臺的設置,如程序圖標、閃屏圖像等,還要在使用PhoneGap API的地方配置安全設置。

PhoneGap Build支持大量插件,而且有支持開發者發佈插件的能力,這些都須要在config.xml中描述。關於在conifg.xml選項的詳細描述請參考:https://build.phonegap.com/docs/config-xml

下篇步入「正題」,詳細說說Cordova API。

相關文章
相關標籤/搜索