概觀
Apache Cordova 是一個開源的行動應用程式開發框架。它允許您使用標準的網頁技術 - HTML5、CSS3 和 JavaScript 進行跨平台開發。應用程式在針對每個平台的封裝器中執行,並依靠符合標準的 API 綁定來存取每個裝置的功能,例如感測器、資料、網路狀態等。
如果您是以下情況,請使用 Apache Cordova
-
一位行動應用程式開發人員,想要將應用程式擴展到多個平台,而無需使用每個平台的語言和工具集重新實作。
-
一位網頁開發人員,想要部署一個已封裝用於在各種應用程式商店入口網站發佈的網頁應用程式。
-
一位對將原生應用程式元件與可存取裝置級 API 的 WebView (特殊瀏覽器視窗) 混合使用感興趣的行動應用程式開發人員,或者如果您想要在原生和 WebView 元件之間開發外掛介面。
架構
Cordova 應用程式有幾個組成部分。下圖顯示了 Cordova 應用程式架構的高階視圖。
WebView
啟用 Cordova 的 WebView 可以為應用程式提供其整個使用者介面。在某些平台上,它也可以是較大的混合應用程式中的一個元件,該應用程式將 WebView 與原生應用程式元件混合使用。(詳細資訊請參閱 嵌入 WebView。)
網頁應用程式
這是您的應用程式程式碼所在的部分。應用程式本身是透過網頁實作的,預設是一個名為 index.html 的本機檔案,其中參考了 CSS、JavaScript、影像、媒體檔案或其他執行所需資源。該應用程式在原生應用程式封裝器內的 WebView 中執行,您可以將其發佈到應用程式商店。
這個容器有一個非常重要的檔案 - config.xml 檔案,它提供有關應用程式的資訊,並指定影響其運作方式的參數,例如是否回應方向轉變。
外掛
外掛是 Cordova 生態系統不可或缺的一部分。它們提供 Cordova 和原生元件相互通訊的介面,以及與標準裝置 API 的綁定。這使您可以從 JavaScript 呼叫原生程式碼。
Apache Cordova 專案維護一組稱為 核心外掛的外掛。這些核心外掛可讓您的應用程式存取裝置功能,例如電池、相機、聯絡人等。
除了核心外掛之外,還有一些第三方外掛,可提供與不一定在所有平台上提供的功能的其他綁定。您可以使用外掛搜尋或npm搜尋 Cordova 外掛。您也可以開發自己的外掛,如外掛開發指南中所述。例如,可能需要外掛才能在 Cordova 和自訂原生元件之間進行通訊。
注意:當您建立 Cordova 專案時,它沒有任何外掛。這是新的預設行為。您想要的任何外掛,即使是核心外掛,都必須明確新增。
Cordova 不提供任何 UI 小工具或 MV* 框架。Cordova 僅提供這些小工具可以執行的執行階段。如果您想使用 UI 小工具和/或 MV* 框架,您需要選擇這些小工具並將它們包含在您的應用程式中。
開發路徑
Cordova 為您提供了兩種建立行動應用程式的基本工作流程。雖然您通常可以使用任一種工作流程來完成相同的任務,但它們各自都有優點
-
跨平台 (CLI) 工作流程:如果您希望您的應用程式盡可能在多種不同的行動作業系統上執行,而無需進行太多平台特定的開發,請使用此工作流程。此工作流程以
cordova
CLI 為中心。CLI 是一種高階工具,可讓您一次為多個平台建置專案,從而抽象化了較低階 shell 指令碼的許多功能。CLI 會將一組常見的網頁資產複製到每個行動平台的子目錄中,為每個平台進行必要的組態變更,並執行建置指令碼以產生應用程式二進位檔。CLI 還提供了一個通用介面,可將外掛套用到您的應用程式。若要開始使用,請依照建立您的第一個應用程式指南中的步驟進行。除非您需要以平台為中心的工作流程,否則建議使用跨平台工作流程。 -
以平台為中心的工作流程:如果您想專注於為單一平台建置應用程式,並且需要能夠在較低層級修改它,請使用此工作流程。例如,如果您希望您的應用程式將自訂原生元件與基於網頁的 Cordova 元件混合使用,則需要使用此方法,如嵌入 WebView中所述。根據經驗,如果您需要在 SDK 中修改專案,請使用此工作流程。此工作流程依賴一組針對每個支援平台量身定制的較低階 shell 指令碼,以及一個單獨的 Plugman 公用程式,可讓您套用外掛。雖然您可以使用此工作流程來建置跨平台應用程式,但通常會更困難,因為缺乏高階工具意味著每個平台都需要單獨的建置週期和外掛修改。
剛開始時,使用跨平台工作流程建立應用程式可能會最容易,如建立您的第一個應用程式指南中所述。如果您需要 SDK 提供的更大控制權,您也可以選擇切換到以平台為中心的工作流程。
注意:一旦您從基於 CLI 的工作流程切換到以平台特定 SDK 和 shell 工具為中心的工作流程,您就無法返回。CLI 維護一組通用的跨平台原始碼,每次建置時都會使用這些原始碼覆寫特定平台的原始碼。若要保留您對特定平台資產所做的任何修改,您需要切換到以平台為中心的 shell 工具,這些工具會忽略跨平台原始碼,而改為依賴特定平台的原始碼。
安裝 Cordova
Cordova 的安裝會因您選擇的上述工作流程而異
-
跨平台工作流程:請參閱建立您的第一個應用程式指南。
-
以平台為中心的工作流程。