版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于HTML5新特性和移動(dòng)開(kāi)發(fā)框架PhoneGap構(gòu)建原生Android應(yīng)用
李凡2014-1-24內(nèi)容結(jié)構(gòu)HTML5話題展開(kāi)的維度至少有以下幾個(gè):新增結(jié)構(gòu)元素方向;Canvas實(shí)現(xiàn)2D繪制方向;Video和Audio方向;Web存儲(chǔ)方向;離線程序緩存方向;WebGL對(duì)HTML5的3D繪制支持方向;Websocket方向;Webkit內(nèi)核方向等。每一個(gè)方向都可以縱向展開(kāi)。本PPT的展開(kāi)思路是:HTML5的新增特性介紹->實(shí)例詳述Web存儲(chǔ)特性->實(shí)例詳述離線應(yīng)用開(kāi)發(fā)->通過(guò)PhoneGap框架將Web應(yīng)用原生化復(fù)活的HTML超文本標(biāo)記語(yǔ)言(HTML)的開(kāi)發(fā)到1999年HTML4就停止了。萬(wàn)維網(wǎng)聯(lián)盟(W3C)把重點(diǎn)轉(zhuǎn)向?qū)TML的底層語(yǔ)法從標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(SGML)改為可擴(kuò)展標(biāo)記語(yǔ)言(XML),以及可縮放向量圖型(SVG)、XForms和MathML這些全新的標(biāo)記語(yǔ)言。瀏覽器廠商則把精力放到選項(xiàng)卡和富站點(diǎn)摘要(RSS)閱讀器這類(lèi)瀏覽器特性上。Web設(shè)計(jì)人員開(kāi)始學(xué)習(xí)使用異步JavaScript+XML(Ajax),在現(xiàn)有的框架下通過(guò)層疊樣式表(CSS)和JavaScript語(yǔ)言建立自己的應(yīng)用程序。在接下來(lái)的八年中,HTML本身沒(méi)有任何變化。2007年三家重要的瀏覽器廠商Apple、Opera和MozillaFoundation聯(lián)合成立了WHATWG,WebHypertextApplicationTechnologyWorkingGroup來(lái)開(kāi)發(fā)傳統(tǒng)HTML的新版本。最近,W3C也注意到了這些活動(dòng),也啟動(dòng)了自己的新一代HTML項(xiàng)目,雙方的成員有很多是相同的。這兩個(gè)項(xiàng)目最終合并成HTML5工作組包括:AOL,Apple,Google,IBM,Microsoft,Mozilla,Nokia,Opera,以及數(shù)百個(gè)其他的供應(yīng)商。雖然很多細(xì)節(jié)還在爭(zhēng)論之中,但下一版本HTML的大體輪廓已經(jīng)清楚了。復(fù)活的HTMLHTML的下一代版本通常稱為HTML5。HTML5=WebApplications1.0=集各種技術(shù)(特別是規(guī)范)于一體,形成了一個(gè)囊括HTML、JavaScript和層疊樣式表(CSS)在內(nèi)的功能強(qiáng)大的API。從某些方面看,HTML5就是下一個(gè)Java。在20世紀(jì)19年代后期,Java語(yǔ)言大受歡迎,主要是因?yàn)槠渚帉?xiě)一次,到處運(yùn)行
的功能使開(kāi)發(fā)人員免于具體選擇(或移植到)Windows、Mac或Linux。HTML5允許您編寫(xiě)一次,在任何(現(xiàn)代)瀏覽器中運(yùn)行,因此您無(wú)需在iOS、Android和Chrome之間做出選擇。但是HTML5不會(huì)取代Java。Java技術(shù)為服務(wù)器端編程提供豐富的生態(tài)系統(tǒng)。HTML5中新增標(biāo)簽元素HTML5是未來(lái)的Web的一部分。它的新元素會(huì)產(chǎn)生更干凈更簡(jiǎn)單的代碼,讓頁(yè)面更容易理解。盡管目前并非所有瀏覽器都支持這些元素,隨著時(shí)間的推移,支持會(huì)逐漸完善。瀏覽器會(huì)忽略不認(rèn)識(shí)的HTML元素,這意味著老式瀏覽器的用戶仍然能夠閱讀HTML5頁(yè)面,他們的瀏覽方式與以前一樣?,F(xiàn)代瀏覽器的用戶可以獲得更好的用戶體驗(yàn),但是沒(méi)有人會(huì)由于HTML5新元素而妨礙瀏覽。新增元素標(biāo)識(shí)簡(jiǎn)要說(shuō)明結(jié)構(gòu)section這可以是書(shū)中的一章或一節(jié)header頁(yè)面上顯示的頁(yè)眉footer頁(yè)腳nav指向其他頁(yè)面的一組鏈接articleblog、雜志、文章匯編等中的一篇文章語(yǔ)義性的塊元素aside代表說(shuō)明、提示、邊欄、引用、附加注釋等f(wàn)igure代表一個(gè)塊級(jí)圖像,還可以包含說(shuō)明dialog表示幾個(gè)人之間的對(duì)話。HTML5dt元素可以表示講話者,HTML5dd元素可以表示講話內(nèi)容語(yǔ)義性內(nèi)聯(lián)元素m表示文本被“加上標(biāo)志”,但是不一定要強(qiáng)調(diào)??梢园阉胂癯蓵?shū)中突出顯示的一節(jié)time可以幫助瀏覽器和其他程序識(shí)別出HTML頁(yè)面中的時(shí)間。它不要求對(duì)元素內(nèi)容應(yīng)用任何特定的格式。但是,每個(gè)time元素都應(yīng)該有一個(gè)datetime屬性,其中包含更適合機(jī)器識(shí)別的時(shí)間值meter表示指定范圍內(nèi)的數(shù)字值。例如,可以用它表示薪水、投票百分比或考試分?jǐn)?shù)progress表示一個(gè)正在進(jìn)行的過(guò)程的狀態(tài),就像圖形用戶界面(GUI)應(yīng)用程序中的進(jìn)度條內(nèi)嵌的媒體video用來(lái)嵌入任意視頻格式
<videosrc="/birds/sora.mov"/>
對(duì)于以哪種格式和解碼器作為首選,仍然有爭(zhēng)議。audio
能夠播放聲音文件或者音頻流
<audiosrc="spacemusic.mp3"autoplay="autoplay"loop="20000"/>交互
(HTML5也被稱為WebApplications1.0。為了實(shí)現(xiàn)這個(gè)目標(biāo),增加了幾個(gè)為Web頁(yè)面提供交互體驗(yàn)的新元素)details表示在默認(rèn)情況下可能不顯示的詳細(xì)信息。可選的legend元素可以提供詳細(xì)信息的摘要。details元素的用途之一是提供腳注和尾注datagrid提供一個(gè)網(wǎng)格控件??梢杂盟@示樹(shù)、列表和表格,用戶和腳本可以更新這些界面元素menumenu包含command元素,每個(gè)command元素引發(fā)一個(gè)操作commandHTML5亮點(diǎn)特性-視頻<Video>直到現(xiàn)在,仍然不存在一項(xiàng)旨在網(wǎng)頁(yè)上顯示視頻的標(biāo)準(zhǔn)。今天,大多數(shù)視頻是通過(guò)插件(比如Flash)來(lái)顯示的。然而,并非所有瀏覽器都擁有同樣的插件。HTML5規(guī)定了一種通過(guò)video元素來(lái)包含視頻的標(biāo)準(zhǔn)方法。如何工作如需在HTML5中顯示視頻,一個(gè)示例:/tiy/t.asp?f=html5_video_all
HTML5亮點(diǎn)特性-視頻
在個(gè)人電腦或者公司網(wǎng)站放置一個(gè)Flash視頻通常需要對(duì)AdobeActionScript和專有工具有一個(gè)很強(qiáng)的理解,用來(lái)編碼視頻和創(chuàng)建播放器控件。一個(gè)Flash對(duì)象的嵌入代碼已存在很多年了,但是像清單所示的代碼,就算您研究很長(zhǎng)時(shí)間,也不能讓它簡(jiǎn)單多少。然而HTML5簡(jiǎn)潔的實(shí)現(xiàn)了視頻的播放。HTML5亮點(diǎn)特性-音頻<Audio>直到現(xiàn)在,仍然不存在一項(xiàng)旨在網(wǎng)頁(yè)上播放音頻的標(biāo)準(zhǔn)。今天,大多數(shù)音頻是通過(guò)插件(比如Flash)來(lái)播放的。然而,并非所有瀏覽器都擁有同樣的插件。HTML5規(guī)定了一種通過(guò)audio元素來(lái)包含音頻的標(biāo)準(zhǔn)方法。audio元素能夠播放聲音文件或者音頻流。如何工作如需在HTML5中播放音頻,一個(gè)示例:/tiy/t.asp?f=html5_audio_allHTML5亮點(diǎn)特性-畫(huà)布<canvas>元素用于在網(wǎng)頁(yè)上繪制2D圖形。HTML5的canvas元素使用JavaScript在網(wǎng)頁(yè)上繪制圖像。畫(huà)布是一個(gè)矩形區(qū)域,開(kāi)發(fā)者可以控制其每一像素。canvas擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。漸變示例:/tiy/t.asp?f=html5_canvas_gradientHTML5亮點(diǎn)特性-Web存儲(chǔ)HTML5提供了兩種在客戶端存儲(chǔ)數(shù)據(jù)的新方法:localStorage-沒(méi)有時(shí)間限制的數(shù)據(jù)存儲(chǔ)sessionStorage-針對(duì)一個(gè)session的數(shù)據(jù)存儲(chǔ)之前,這些存儲(chǔ)都是由cookie完成的。但是cookie不適合大量數(shù)據(jù)的存儲(chǔ),因?yàn)樗鼈冇擅總€(gè)對(duì)服務(wù)器的請(qǐng)求來(lái)傳遞,這使得cookie速度很慢而且效率也不高。在HTML5中,數(shù)據(jù)不是由每個(gè)服務(wù)器請(qǐng)求傳遞的,而是只有在請(qǐng)求時(shí)使用數(shù)據(jù)。它使在不影響網(wǎng)站性能的情況下存儲(chǔ)大量數(shù)據(jù)成為可能。對(duì)于不同的網(wǎng)站,數(shù)據(jù)存儲(chǔ)于不同的區(qū)域,并且一個(gè)網(wǎng)站只能訪問(wèn)其自身的數(shù)據(jù)。HTML5使用JavaScript來(lái)存儲(chǔ)和訪問(wèn)數(shù)據(jù)。localStorage方法localStorage方法存儲(chǔ)的數(shù)據(jù)沒(méi)有時(shí)間限制。如何創(chuàng)建和訪問(wèn)localStorage:/tiy/t.asp?f=html5_webstorage_local_pagecountHTML5亮點(diǎn)特性-Web存儲(chǔ)sessionStorage方法sessionStorage方法針對(duì)一個(gè)session進(jìn)行數(shù)據(jù)存儲(chǔ)。當(dāng)用戶關(guān)閉瀏覽器窗口后,數(shù)據(jù)會(huì)被刪除。如何創(chuàng)建并訪問(wèn)一個(gè)sessionStorage:/tiy/t.asp?f=html5_webstorage_session_pagecount其他HTML5規(guī)范新特性WebworkersWebWorkers定義了一套API,能夠允許腳本運(yùn)行于后臺(tái),進(jìn)行類(lèi)似于線程化的操作。Web套接字WebSocket定義了一套API,允許網(wǎng)頁(yè)能夠使用WebSocket協(xié)議來(lái)和遠(yuǎn)程主機(jī)進(jìn)行雙工通信。WebGLWebGL是一種3D繪圖標(biāo)準(zhǔn),這種繪圖技術(shù)標(biāo)準(zhǔn)允許把JavaScript和OpenGLES2.0結(jié)合在一起,通過(guò)增加OpenGLES2.0的一個(gè)JavaScript綁定,WebGL可以為HTML5Canvas提供硬件3D加速渲染W(wǎng)ebSQLDatabase提供給開(kāi)發(fā)者一個(gè)簡(jiǎn)單而強(qiáng)大的JavaScript數(shù)據(jù)庫(kù)API,可以在一個(gè)本地SQLite數(shù)據(jù)庫(kù)中持久保存數(shù)據(jù)。
Q&A
基于WebSQLDatabase構(gòu)建應(yīng)用對(duì)于Web應(yīng)用的存儲(chǔ),通常使用Cookie,Cookie用于彌補(bǔ)HTTP協(xié)議的無(wú)狀態(tài)性,服務(wù)器可以使用Cookie中包含的信息來(lái)判斷HTTP傳輸中的狀態(tài)。但Cookie有自己固有的缺點(diǎn):它的大小受限,大多數(shù)瀏覽器對(duì)Cookie大小限制為4K;Cookie機(jī)制可以在瀏覽器中被禁用;Cookie需要在客戶端和服務(wù)器端來(lái)回地傳送,繁瑣且消耗帶寬;存在安全風(fēng)險(xiǎn),Cookie是以明文存放,可能被惡意客戶修改。對(duì)于HTML5,也許很有用的就是它新推出的“WebStorage”(Web存儲(chǔ))API,它包括localStorage和sessionStorage,對(duì)簡(jiǎn)單的鍵值對(duì)(比如應(yīng)用程序設(shè)置)或簡(jiǎn)單對(duì)象(如應(yīng)用程序狀態(tài))進(jìn)行存儲(chǔ),使用本地和會(huì)話存儲(chǔ)能夠很好地完成,對(duì)于存儲(chǔ)少量的數(shù)據(jù)非常有用,但是對(duì)大量的結(jié)構(gòu)化數(shù)據(jù)進(jìn)行處理時(shí),它就力所不及了,(瀏覽器的限制大概在2.5M左右)而這正是HTML5的“WebSQLDatabase”API接口的應(yīng)用所在?;赪ebSQLDatabase構(gòu)建應(yīng)用WebSQLDatabaseAPI實(shí)際上并不包含在HTML5規(guī)范之中。它是一個(gè)獨(dú)立的規(guī)范,它引入了一套使用SQL操作客戶端數(shù)據(jù)庫(kù)的API。但一般提到它,還是會(huì)說(shuō)是HTML5的特性。最新版本的Chrome,Safari和Opera瀏覽器都支持WebSQLDatabase。WebSQLDatabase的細(xì)則中提供給開(kāi)發(fā)者一個(gè)簡(jiǎn)單而強(qiáng)大的JavaScript數(shù)據(jù)庫(kù)API,使得可以在一個(gè)本地SQLite數(shù)據(jù)庫(kù)中持久保存數(shù)據(jù)?;赪ebSQLDatabase構(gòu)建應(yīng)用建立數(shù)據(jù)庫(kù)建立一個(gè)名稱為mydb的數(shù)據(jù)庫(kù),它的版本為1.0,描述信息為T(mén)estDB,大小為2M字節(jié)。openDatabase方法打開(kāi)一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在則創(chuàng)建數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)法如下:DatabaseopenDatabase(inDOMStringname,inDOMStringversion,inDOMStringdisplayName,inunsignedlongestimatedSize,inoptionalDatabaseCallbackcreationCallback)方法用到五個(gè)參數(shù):數(shù)據(jù)庫(kù)名版本號(hào)描述數(shù)據(jù)庫(kù)大小創(chuàng)建回調(diào)函數(shù)最后一個(gè)參數(shù)創(chuàng)建回調(diào)函數(shù),在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候調(diào)用,但即使沒(méi)有這個(gè)參數(shù),一樣可以運(yùn)行時(shí)創(chuàng)建數(shù)據(jù)庫(kù)。基于WebSQLDatabase構(gòu)建應(yīng)用建立表格并插入數(shù)據(jù)db.transaction(function(tx){ tx.executeSql('CREATETABLEIFNOTEXISTSLOGS(idunique,log)'); tx.executeSql('INSERTINTOLOGS(id,log)VALUES(1,“TCL")'); tx.executeSql('INSERTINTOLOGS(id,log)VALUES(2,“TMer")');msg='<p>Logmessagecreatedandrowinserted.</p>';document.querySelector('#status').innerHTML=msg;});通過(guò)CREATE語(yǔ)句可以在mydb數(shù)據(jù)庫(kù)中建立一個(gè)LOGS表格。并插入兩條記錄:TCL、Tmer?;赪ebSQLDatabase構(gòu)建應(yīng)用Date:2011.11.22Page2代碼清單:運(yùn)行效果:基于WebSQLDatabase構(gòu)建應(yīng)用查詢數(shù)據(jù)和將查詢結(jié)果顯示如果要讀取已經(jīng)存在的記錄,我們使用一個(gè)回調(diào)函數(shù)捕獲結(jié)果。db.transaction(function(tx){tx.executeSql('SELECT*FROMLOGS',[],function(tx,results){varlen=results.rows.length,i;msg="<p>Foundrows:"+len+"</p>";document.querySelector('#status').innerHTML+=msg;for(i=0;i<len;i++){msg="<p><b>"+results.rows.item(i).log+"</b></p>";document.querySelector('#status').innerHTML+=msg;}},null);});基于WebSQLDatabase構(gòu)建應(yīng)用代碼清單:運(yùn)行效果:需要注意的是,如果不是絕對(duì)需要,不要使用WebSQLDatabase,因?yàn)樗鼤?huì)讓我們的代碼更加復(fù)雜(匿名內(nèi)部類(lèi)的內(nèi)部函數(shù),回調(diào)函數(shù)等等)對(duì)大多數(shù)情況下,本地存儲(chǔ)或會(huì)話存儲(chǔ)就能夠完成相應(yīng)的任務(wù),尤其是你能夠保持對(duì)象狀態(tài)持久化的情況。使用HTML5創(chuàng)建移動(dòng)離線Web應(yīng)用在移動(dòng)應(yīng)用程序中使用Web開(kāi)發(fā)的趨勢(shì)逐漸增強(qiáng)。然而,間歇性網(wǎng)絡(luò)可用性對(duì)于使用Web技術(shù)作為云基礎(chǔ)架構(gòu)一部分是一個(gè)巨大障礙。傳統(tǒng)的Web應(yīng)用程序沒(méi)有網(wǎng)絡(luò)就無(wú)法工作。解決方案之一是使用HTML5標(biāo)準(zhǔn)的兩個(gè)特性:離線Web應(yīng)用程序客戶端數(shù)據(jù)存儲(chǔ)用戶可在移動(dòng)設(shè)備上使用云功能,使用部署在本地?cái)?shù)據(jù)庫(kù)上的應(yīng)用程序來(lái)工作,當(dāng)再次上線時(shí)與云的其他部分共享數(shù)據(jù)。使用HTML5創(chuàng)建移動(dòng)離線Web應(yīng)用離線Web應(yīng)用的核心元素:使用HTML5創(chuàng)建移動(dòng)離線Web應(yīng)用HTML頁(yè)面
HTML頁(yè)面作為應(yīng)用程序核心,起到模型作用。它包含要顯示的數(shù)據(jù)以及(默認(rèn))提交信息。頁(yè)面的HTML元素是按HTMLDocumentObjectModel(DOM)樹(shù)層級(jí)組織的。用戶發(fā)起的事件產(chǎn)生一個(gè)傳統(tǒng)的請(qǐng)求-響應(yīng)循環(huán),其中有頁(yè)面加載和執(zhí)行相關(guān)JavaScript函數(shù)。值得注意的是,本應(yīng)用程序包含一個(gè)單獨(dú)的HTML頁(yè)面,無(wú)需通過(guò)請(qǐng)求-響應(yīng)循環(huán)加載更多HTML頁(yè)面。所有動(dòng)作都在一個(gè)頁(yè)面上。JavaScript
JavaScript元素包含應(yīng)用程序控制器函數(shù)。HTML元素通過(guò)事件處理器綁定到JavaScript函數(shù)。JavaScript能通過(guò)用所有用戶界面(UI)元素訪問(wèn)應(yīng)用程序的HTMLDOM樹(shù),并將其用作運(yùn)算的數(shù)據(jù)輸入。處理結(jié)果可以通過(guò)修改HTML頁(yè)面顯示給用戶。使用HTML5創(chuàng)建移動(dòng)離線Web應(yīng)用
層疊樣式表
層疊樣式表(CSS)描述HTML頁(yè)面如何提交。對(duì)于這一階段擴(kuò)展,只使用HTML元素的默認(rèn)提交行為。對(duì)于移動(dòng)設(shè)備,有各種JavaScript/CSS庫(kù)和框架來(lái)發(fā)布與Web應(yīng)用程序接近的用戶體驗(yàn)(例如,用于iPhone的iUi,跨平臺(tái)的JQueryMobile)數(shù)據(jù)庫(kù)
HTML5標(biāo)準(zhǔn)引入本地?cái)?shù)據(jù)庫(kù)存儲(chǔ)。瀏覽器提供嵌入式數(shù)據(jù)庫(kù),即SQLite,它可以通過(guò)處理SQL查詢從JavaScript訪問(wèn)。應(yīng)用程序模型的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)在這里。清單
清單文件(Manifest)是離線Web應(yīng)用程序的強(qiáng)制性部署描述符組件。它只是簡(jiǎn)單列舉需要加載的文件。使用HTML5創(chuàng)建移動(dòng)離線Web應(yīng)用離線工作原理:HTML5有一個(gè)特性叫OfflineApplicationCache(離線程序緩存),它的主要組成部分是一個(gè)在Web服務(wù)器上托管的cachemanifestfile(緩存列表文件),當(dāng)用戶導(dǎo)航網(wǎng)絡(luò)程序時(shí),瀏覽器會(huì)將所有需要展示的(HTML,CSS,JavaScript、圖片等)都下載下來(lái)并存儲(chǔ)到本地,下次用戶再訪問(wèn)時(shí),瀏覽器識(shí)別URL將文件從本地緩存中拿出來(lái)展示,而非從網(wǎng)絡(luò)直接下載數(shù)據(jù)。一個(gè)Manifest文件只是存放在Web服務(wù)器上的一個(gè)簡(jiǎn)單文本文件其中包含了用戶設(shè)備為了實(shí)現(xiàn)必要功能必須下載保存的文件列表。使用HTML5創(chuàng)建移動(dòng)離線Web應(yīng)用示例假設(shè)Web目錄下包含了如下文件:Index.htmlLogo.jpgScripts/demo.jsStyles/screen.css在這種情況下,index.html是用戶在訪問(wèn)程序時(shí)候?yàn)g覽器需要加載的頁(yè)面。其他文件是在index.html中被引用的文件。如果想讓這一切都在離線狀態(tài)下可用,就要在index.html的同一路徑下創(chuàng)建一個(gè)叫做Demo.manifest的文件。以下是在這個(gè)文件夾下面被添加的文件:Demo.manifestIndex.htmlLogo.jpgScripts/demo.jsStyles/screen.css使用HTML5創(chuàng)建移動(dòng)離線Web應(yīng)用下一步,在demo.manifest中添加如下幾行:CACHEMANIFESTIndex.htmlLogo.jpgScripts/demo.jsStyles/screen.cssManifest文件創(chuàng)建之后,在index.html文件中的html標(biāo)簽加入manifest屬性來(lái)將創(chuàng)建好的文件關(guān)聯(lián)起來(lái):<htmlmanifest=“demo.manifest”>離線程序緩存已經(jīng)進(jìn)入工作狀態(tài),用戶瀏覽/index.html時(shí),頁(yè)面和相關(guān)資源會(huì)正常的通過(guò)網(wǎng)絡(luò)加載,而在后臺(tái),所有在manifest中列出的文件就會(huì)被下載到本地,一旦下載完成,用戶刷新界面,再次訪問(wèn)的就是本地文件。以此實(shí)現(xiàn)斷開(kāi)網(wǎng)絡(luò)連接繼續(xù)訪問(wèn)網(wǎng)絡(luò)應(yīng)用。使用HTML5創(chuàng)建移動(dòng)離線Web應(yīng)用當(dāng)網(wǎng)絡(luò)程序作了修改,用戶如何得到更新?當(dāng)用戶可以通過(guò)Internet訪問(wèn)程序URL地址時(shí),瀏覽器會(huì)檢查網(wǎng)站端的manifest文件,看其是否和本地版本對(duì)應(yīng)。如果遠(yuǎn)程的版本已經(jīng)有新的改動(dòng),瀏覽器會(huì)在后臺(tái)下載所有manifest中列出的文件并將其存放在一個(gè)臨時(shí)緩存中。對(duì)本地manifest和遠(yuǎn)程manifest的比較是對(duì)文件內(nèi)容逐個(gè)字節(jié)的比較(包括注釋和空白行)。如果在下載過(guò)程中發(fā)生了錯(cuò)誤,被下載到臨時(shí)緩存中的部分會(huì)被自動(dòng)丟棄,之前的版本仍然起作用。如果下載成功,下次啟動(dòng)程序時(shí),用戶會(huì)使用新的版本?;赑honeGap框架的Mobile應(yīng)用Date:2011.11.22Page2網(wǎng)絡(luò)應(yīng)用程序與原生應(yīng)用程序的對(duì)比什么是網(wǎng)絡(luò)應(yīng)用程序一個(gè)針對(duì)智能手機(jī)優(yōu)化過(guò)的Web站點(diǎn)用戶界面是用網(wǎng)絡(luò)標(biāo)準(zhǔn)技術(shù)建立的能夠通過(guò)一個(gè)URL訪問(wèn)到不需要安裝到手機(jī)不從AndroidAppStore里下載也不是用Java編寫(xiě)的。什么是原生應(yīng)用程序程序被安裝在Android手機(jī)上能夠使用手機(jī)硬件功能(揚(yáng)聲器、攝像頭、加速度傳感器)用Java編寫(xiě)的從AppStore中下載基于PhoneGap框架的Mobile應(yīng)用不同的應(yīng)用程序針對(duì)不同的需求,根據(jù)需求場(chǎng)景考慮采用哪種方式實(shí)現(xiàn)。
優(yōu)勢(shì)劣勢(shì)原生應(yīng)用數(shù)百萬(wàn)的付費(fèi)用戶點(diǎn)擊既得;
程序可以使用硬件所有新奇功能應(yīng)用程序只能在Android手機(jī)上運(yùn)行;
必須用Java開(kāi)發(fā);
開(kāi)發(fā)周期長(zhǎng)(開(kāi)發(fā)、編譯、部署、迭代)網(wǎng)絡(luò)應(yīng)用使用現(xiàn)有的Web設(shè)計(jì)和開(kāi)發(fā)技術(shù);
應(yīng)用程序運(yùn)行在任何有Web瀏覽器的設(shè)備上;
可以實(shí)時(shí)修復(fù)Bug;
開(kāi)發(fā)周期短應(yīng)用程序無(wú)法使用手機(jī)硬件的所有功能;
復(fù)雜用戶界面效果難以實(shí)現(xiàn);
若收費(fèi),需推出支付系統(tǒng)HTML5的新特性以及PhoneGap框架能夠使得網(wǎng)絡(luò)應(yīng)用“離線”使用,把網(wǎng)絡(luò)應(yīng)用程序制作包裝成Android平臺(tái)原生應(yīng)用。網(wǎng)絡(luò)應(yīng)用和原生應(yīng)用優(yōu)劣對(duì)比基于PhoneGap框架的Mobile應(yīng)用至此,網(wǎng)絡(luò)程序想在已經(jīng)可以做很多原生應(yīng)用做的事情了,例如本地存儲(chǔ)數(shù)據(jù)、在離線狀態(tài)下工作,然而,它仍然有兩件事情沒(méi)辦法做:沒(méi)有辦法訪問(wèn)設(shè)備特性和硬件(如地理位置信息、加速度傳感器、聲音和震動(dòng))沒(méi)有辦法將應(yīng)用提交到Android應(yīng)用程序市場(chǎng)上。通過(guò)PhoneGap框架,可以實(shí)現(xiàn)上述目標(biāo)。PhoneGap是一款基于HTML5的開(kāi)源的手機(jī)應(yīng)用開(kāi)發(fā)框架,它允許用戶僅僅通過(guò)Web(HTML、JavaScript)技術(shù)就可以訪問(wèn)移動(dòng)設(shè)備的本地應(yīng)用、API以及應(yīng)用程序庫(kù)等。PhoneGap提供了一系列豐富的API供開(kāi)發(fā)者調(diào)用,這些API抽象和簡(jiǎn)化了移動(dòng)設(shè)備本身提供的復(fù)雜的API,使開(kāi)發(fā)新的手機(jī)應(yīng)用和調(diào)用已有的手機(jī)功能更簡(jiǎn)單方便。另外,PhoneGap真正實(shí)現(xiàn)了“writtenonce,runeverywhere”,并且它采用了W3C標(biāo)準(zhǔn),能和jQueryMobile結(jié)合在一起使用?;赑honeGap框架的Mobile應(yīng)用PhoneGap特性目前,Pho
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度新型房屋貸款反擔(dān)保服務(wù)合同2篇
- 小學(xué)生語(yǔ)言組織能力在語(yǔ)文課堂的PBL式評(píng)價(jià)
- 2025年度二人合伙經(jīng)營(yíng)民宿業(yè)合作協(xié)議3篇
- 2024電梯安裝分包合同
- 小學(xué)語(yǔ)文教育的創(chuàng)新與突破匯報(bào)
- 二零二五年度二手挖掘機(jī)買(mǎi)賣(mài)合同智能制造領(lǐng)域2篇
- 2025年度通信設(shè)備采購(gòu)及網(wǎng)絡(luò)優(yōu)化服務(wù)合同3篇
- 家校聯(lián)手助力孩子的健康生活方式培養(yǎng)
- 二零二五年度挖掘機(jī)租賃合同與采購(gòu)合同合并范本3篇
- 二零二五年度家電銷(xiāo)售市場(chǎng)推廣合作合同模板3篇
- 手術(shù)室搶救工作制度
- 施工圖設(shè)計(jì)師的年終報(bào)告
- 鋼閘門(mén)監(jiān)理評(píng)估報(bào)告
- 高檔養(yǎng)老社區(qū)項(xiàng)目計(jì)劃書(shū)
- 京東物流信息系統(tǒng)
- 年會(huì)拜年祝福視頻腳本
- 統(tǒng)編版六年級(jí)語(yǔ)文上冊(cè)專項(xiàng) 專題09病句辨析與修改-原卷版+解析
- 痤瘡詳細(xì)版課件
- 精算學(xué)專業(yè)職業(yè)生涯規(guī)劃書(shū)
- 2023年河南省普通高校專升本公共英語(yǔ)真題(試卷+答案)
- 保安應(yīng)急突發(fā)事件的培訓(xùn)內(nèi)容
評(píng)論
0/150
提交評(píng)論