自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PhoneGap開發(fā)初體驗(yàn):用HTML5技術(shù)開發(fā)本地應(yīng)用

移動(dòng)開發(fā)
怎樣在智能手機(jī)(以及其他移動(dòng)設(shè)備)上將HTML5應(yīng)用程序作為本地程序運(yùn)行?雖然現(xiàn)在Web技術(shù)發(fā)展得相當(dāng)快,但是想要在瀏覽器上運(yùn)行一個(gè)幾兆大小的應(yīng)用程序還是非常困難的,因?yàn)闉g覽器的緩存是有限的。用戶必須通過打開一個(gè)鏈接訪問HTML5應(yīng)用程序,而不能像訪問本地應(yīng)用程序一樣,僅僅通過點(diǎn)擊一個(gè)圖標(biāo)就能得到想要的結(jié)果,尤其是當(dāng)移動(dòng)設(shè)備脫機(jī)以后,用戶幾乎無法訪問HTML5應(yīng)用程序。

PhoneGap是一個(gè)用基于HTML,CSS和JavaScript的,創(chuàng)建跨平臺(tái)移動(dòng)應(yīng)用程序的快速開發(fā)平臺(tái)。開發(fā)的程序?qū)⒉渴鹪谝粋€(gè)特定的操作系統(tǒng)上(如Android,iOS,Windows Phone…),類似于在本地主機(jī)上運(yùn)行的Apache實(shí)例。

需要下載的資源

如果你只是想體驗(yàn)一下PhoneGap,可以只下載一個(gè)PhoneGap包。但是你也許還需要下載一個(gè)Android SDk。Android只是我給出的一個(gè)例子,PhoneGap共支持7種平臺(tái)。

部署時(shí)不需要額外下載Eclipse或者其他的IDEs。我更喜歡使用命令行。

在Android Virtual Device上部署開發(fā)

Android模擬器的速度有點(diǎn)慢,但是這是所有模擬器的通病。參考指導(dǎo)手冊(cè),可以很快地在Android Virtual Device上部署我們的實(shí)例程序。

程序使用了ant,可以方便我們查看我們部署的內(nèi)容:

  • /www/文件夾將作為我們虛擬的web服務(wù)器的根目錄。
  • Android的一些基礎(chǔ)文件,如AndroidManifest.xml。
  • 一些JavaScript庫(如phonegap.js),用于在設(shè)備上加載JavaScript代碼。

如果我們需要測(cè)試應(yīng)用程序的用戶體驗(yàn),那么我們不應(yīng)該使用模擬器測(cè)試:它缺乏定位功能和許多其他功能部件;畢竟模擬器并不是真正的手機(jī)。

PhoneGap的實(shí)際作用與設(shè)備的功能有著密切的關(guān)系;我們都清楚瀏覽器的功能(如CSS風(fēng)格,Ajax calls)并不會(huì)隨著平臺(tái)的改變而改變。

在實(shí)際的手機(jī)上部署開發(fā)

我通過Android Market在一個(gè)真正的手機(jī)上安裝了GWT PhoneGap showcase

應(yīng)用程序的啟動(dòng)時(shí)間和響應(yīng)速度都不錯(cuò),就像是一個(gè)native app。PhoneGap可以從JavaScript中獲提取圖片!它可以用在photocamera程序中,當(dāng)用戶保存(或是刪除)拍攝的照片后,它能夠獲取圖片的文件名。

上面的例子介紹了如何從加速器、方向儀、GPS傳感器(提供經(jīng)度和緯度)中提取數(shù)據(jù)。也可以在瀏覽器中使用本地存儲(chǔ)方式(例如key-value存儲(chǔ))。

后退按鈕(這在跨平臺(tái)的程序中是一個(gè)難題)可以截獲應(yīng)用程序,控制應(yīng)用程序在屏幕上的顯示情況。這一點(diǎn)與native app的功能相似。

API

這個(gè)API是基于JavaScript的:你可以在瀏覽器中調(diào)用它。有一些新的組件目前還沒有相應(yīng)的標(biāo)準(zhǔn):目前還沒有標(biāo)準(zhǔn)規(guī)范如何在瀏覽器中訪問文件。

幸運(yùn)的是,W3C已經(jīng)為其他的組件制定了相應(yīng)的標(biāo)準(zhǔn):瀏覽器上的地理定位,Web SQL以及Web存儲(chǔ)目前已經(jīng)有了統(tǒng)一的規(guī)范。例如:

 

用來提取位置對(duì)象信息并返回給調(diào)用者。

我只嘗試了在Android設(shè)備上使用PhoneGap,但是Android和iOS都支持各自的API組件。他們都有各自支持的平臺(tái)和API版本。例如,F(xiàn)ile API可用在以下系統(tǒng)上調(diào)用:

  • Android
  • BlackBerry WebWorks (OS 5.0 and higher)
  • iOS
  • Windows Phone 7 ( Mango )

應(yīng)用程序可以訪問一個(gè)www/文件夾,這個(gè)文件夾就相當(dāng)于你的主服務(wù)器。你可以從這個(gè)文件夾下的指定路徑中下載.js文件(其中包括phonegap-1.2.0.js文件,它提供了API調(diào)用)。

也可以通過同樣的方式下載CSS。下載的內(nèi)容都是HTML和一些事件信息,如onclick事件(當(dāng)你點(diǎn)擊手機(jī)或是平板電腦時(shí)產(chǎn)生)。

當(dāng)你使用XMLHttpRequest請(qǐng)求對(duì)象時(shí)可以調(diào)用Ajax:你可以在服務(wù)器端使用JS架構(gòu)存儲(chǔ)數(shù)據(jù),為了節(jié)省帶寬,你應(yīng)該將JS架構(gòu)的資源保存到www/目錄下。XMLHttpRequest可能被發(fā)送給任意一個(gè)服務(wù)器:如果沒有找到滿足要求的服務(wù)器接收請(qǐng)求,那么你的請(qǐng)求將會(huì)被本地服務(wù)器處理。

總結(jié)

開發(fā)者使用PhoneGap的目的是非常明確的。

首先,PhoneGap能夠幫助開發(fā)者節(jié)省帶寬:滿足W3C規(guī)范的離線web應(yīng)用程序目前并不完善;這些規(guī)范執(zhí)行起來較為復(fù)雜,移動(dòng)設(shè)備提供商們往往根據(jù)自己的需要打破規(guī)定(他們更傾向于開發(fā)native app,而不是采用一個(gè)統(tǒng)一的web標(biāo)準(zhǔn))。

能夠充分整合移動(dòng)設(shè)備上的各種功能:例如不需要依靠Flash或是W3C的標(biāo)準(zhǔn),就能將攝像機(jī)和文件系統(tǒng)整合起來。能夠?yàn)閼?yīng)用程序創(chuàng)建一個(gè)圖標(biāo)而不是一個(gè)書簽

PhoneGap以及其他類似的開發(fā)工具的缺點(diǎn)是:它將原來的Web應(yīng)用程序和本地應(yīng)用程序的概念區(qū)分開了。而一個(gè)理想的情況應(yīng)該是:我們可以將本地應(yīng)用程序也當(dāng)做是一個(gè)標(biāo)準(zhǔn)的離線Web應(yīng)用程序來處理。

Martin Fowler指出了跨平臺(tái)開發(fā)中的一些困難:例如不同設(shè)備間的UI控制存在差異(Android的按鍵和iOS的按鍵),用戶體驗(yàn),以及安全模型。他表示將Web應(yīng)用程序部署成本地應(yīng)用程序是解決上述困難的方法之一,而這正是PhoneGap所做的工作。

[[51561]]注:作者Giorgio Sironi是一個(gè)自由職業(yè)的Web開發(fā)人員,以優(yōu)異的成績(jī)獲得計(jì)算機(jī)工程學(xué)士學(xué)位。作者參與了許多開源項(xiàng)目,如Zend Framework以及Doctrine。作者認(rèn)為編程是世界上最艱難而又最美麗的工作之一。Giorgio 是DZone社區(qū)的領(lǐng)導(dǎo),發(fā)布了374篇文章。)

 

責(zé)任編輯:佚名 來源: webapptrend
相關(guān)推薦

2012-03-07 15:24:41

2011-07-05 14:59:47

PhoneGapHTML 5

2021-08-04 15:11:22

區(qū)塊鏈比特幣應(yīng)用

2012-02-20 13:45:26

HTML5移動(dòng)開發(fā)程序

2011-12-12 10:08:39

jQuery MobiHTML5

2015-10-31 18:41:58

MDSA線下公開課

2011-10-08 10:15:40

AdobePhoneGapNitobi

2012-08-21 09:41:24

HTML5

2012-04-12 11:11:15

HTML5APIWEB

2012-02-23 10:28:43

AppCanHTML5移動(dòng)應(yīng)用

2014-12-22 15:02:48

HTML5移動(dòng)應(yīng)用開發(fā)

2010-08-01 16:11:53

Android

2017-01-03 18:09:33

HTML5本地存儲(chǔ)Web

2015-11-02 12:37:09

MDSNHTML5

2011-08-10 13:44:22

HTML 5

2013-10-09 09:10:28

移動(dòng)應(yīng)用開發(fā)NativeHybrid

2012-06-01 09:29:56

HTML5

2015-11-04 18:50:37

HTML5MDSA線下公開課

2014-07-21 17:48:09

PhoneGapCordovaHtml5

2015-12-04 09:09:58

HTML5多維度技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)