跨平臺移動開發框架 PhoneGap 基本概念介紹

fmms 12年前發布 | 29K 次閱讀 PhoneGap 移動開發
我在很多技術大會,技術討論研討會,甚至就是與一些開發者在他們的辦公室內都討論過移動開發與PhoneGap。我發現有很多相同的問題總是被大家提到,所以我寫下這篇文章來讓所有開發者更好的理解PhoneGap。

PhoneGap
在等會談到更深入的細節之前,我想解釋一下什么叫做 PhoneGap。PhoneGap 首先是一個應用程序容器技術,它能讓你用 HTML,CSS,JavaScript來創建原生可安裝的移動應用程序。PhoneGap 的核心引擎是100%開源的,它是屬于Apache Cordova項目的旗下產品。你可以通過我的另外一篇文章來加強了解 PhoneGap.

PhoneGap 用戶界面

PhoneGap 應用程序的用戶界面使用 HTML,CSS以及JavaScript來創建的。而它的界面底層實質上是用瀏覽器視圖創建的,而瀏覽器視圖將占據真實設備的100%寬度與100%的高度。
跨平臺移動開發框架 PhoneGap 基本概念介紹

建議把這個設想為一個無頭部的Web瀏覽器。與普通瀏覽器一樣可以渲染HTML內容,但是不會顯示普通瀏覽器的邊框。所以你可以充分使用這些空間,比如使用HTML/css創建導航頂部欄。

PhoneGap使用的 Web瀏覽器與手機操作系統的瀏覽器其實是一樣的。在IOS上,這將是原生Objective-C的UIWebView類;在Android上,這是android.webkit.WebView。

PhoneGap API
PhoneGap 提供了很多API讓你可以使用JavaScript來調用很多原生操作系統提供的功能。整個過程就是你用 JavaScript 來寫程序的邏輯,然后 PhoneGap API 來處理與原生系統的交互。
跨平臺移動開發框架 PhoneGap 基本概念介紹
你能在這里找到所有的 PhoneGap API.

另外,你自己也可以使用JavaScript來創建"原生插件"。PhoneGap 的原生插件能讓你自己去自定義本地類與對應的JavaScript接口。當然你可以從讀讀下面幾篇文章區更好的了解 PhoneGap 原生插件。

PhoneGap 應用程序打包與發布
雖然 PhoneGap 應用是用HTML,CSS,JavaScript創建的,但是最終生成的是二進制的應用程序壓縮文件,這種文件是可以以正規標準發布渠道發布的。
跨平臺移動開發框架 PhoneGap 基本概念介紹
對于IOS應用來說,最終輸出是IPA文件,對于Android應用,則是 APK 文件,對于Windows Phone應用,是 xap 文件,等等。最重要的是打包的格式與與標準原生應用是一樣的。隨后你就可以在與之對應的賣場上發布了(iTunes Store,Android Market, Amazon Market, BlackBerry App World,Windows Phone Marketplace等等)

PhoneGap 高級應用程序架構
PhoneGap 應用程序運行起來更像Web應用程序一樣,PhoneGap 客戶端與對應的服務器交互傳遞數據。服務器先處理業務邏輯然后將結果返回給客戶端。
跨平臺移動開發框架 PhoneGap 基本概念介紹

一般說來,服務器都是指像Apache,IIS這種環境 與一些特定的腳本語言比如 ColdFusion, Java, .NET, PHP等。PhoneGap 是一個完全的前臺展示技術來與任何類型的服務器使用標準Web協議來交互數據。應用程序的對應服務器來處理業務邏輯與計算,然后從數據庫保存以及獲取數 據。

PhoneGap 應用一般不直接與數據庫打交道;而是以標準HTTP來與服務器程序交互。來獲取HTML內容,REST-ful XML Services,JSON  Services,或者SOAP。這和你創建的那種基于AJAX技術的桌面型瀏覽器控件的應用是差不多的。

PhoneGap 的這種客戶端模式架構一般都是使用 single-page application model,即應用程序的邏輯都是在一個HTML頁面上。而且頁面不是從內存上清空。所有的數據都是需要以HTML DOM的方式來顯示出來。首先使用AJAX技術來從服務器上獲取數據,然后使在JavaScript中保存這些變量。
雖然多頁面的客戶端程序架構現在也被支持了,但是因為會在加載分離頁面的時候你回丟失一些需要保存的變量,所以不建議使用這個新架構。
 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!