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

HTML 5打造桌面應(yīng)用

開發(fā) 前端
就在這個星期,我看到的一篇文章,宣稱HTML5要“準(zhǔn)備就緒”還要再過10年。我想問:“準(zhǔn)備什 么?”,當(dāng)然目前還有許多API仍在發(fā)展,但大多情況下,HTML5就是現(xiàn)在進行時。

***版的HTML,即HTML5,已經(jīng)在軟件和信息產(chǎn)業(yè)界產(chǎn)生了巨大的影響。當(dāng)我們說:“HTML5”,我們指的其實是HTML / CSS / JavaScript的“綜合體”。在Mozilla,我們經(jīng)常提及“Web Run-Time”或WebRT。Mozilla應(yīng)用的探討(包括Web Runtime)都被被記錄在這里。

懷疑論者喜歡說:“HTML5還沒有準(zhǔn)備好”。就在這個星期,我看到的一篇文章,宣稱HTML5要“準(zhǔn)備就緒”還要再過10年。我想問:“準(zhǔn)備什 么?”,當(dāng)然目前還有許多API仍在發(fā)展,但大多情況下,HTML5就是現(xiàn)在進行時。基本上發(fā)展到目前,已經(jīng)準(zhǔn)備在不久的將來提供給一般人使用。

最近Mozilla的Web Apps的安裝體驗已經(jīng)引入到火狐每晚版通道。(閱讀更多關(guān)于Firefox版本發(fā)布通道的信息

此功能可以讓我們把HTML5應(yīng)用安置在Windows或Mac本地上(Linux和Android在未來也能得到支持),獲得像桌面應(yīng)用類似的體驗。

Mozilla用偉大的方式來做到這一點,Mozilla市場可以簡潔的列出你的應(yīng)用。市場將很快就會向公眾開放,開發(fā)人員可以提交他們的應(yīng)用提交到市場這個生態(tài)系統(tǒng)上。想要提交應(yīng)用,你僅需要申請一個BrowserID。

一個HTML5應(yīng)用,需要包括Mozilla Web Runtime運行環(huán)境和一個manifest文件。

該manifest文件其實是一個簡單的JSON文件,聲明了App的某些數(shù)據(jù)。

這里是一個App的manifest文件示例。

  1. {    
  2.      "version": "1.0",    
  3.      "name": "KO Round Timer",    
  4.      "description": "A Workout Timer for Fighting Athletes!",    
  5.      "icons": {     
  6.        "128": "/images/icon-128.png"    
  7.      },      
  8.      "developer": {    
  9.        "name": "Joe Stagner",    
  10.        "url": "http://koscience.com"    
  11.      },    
  12.      "installs_allowed_from": [    
  13.        "http://timer.koscience.com",   
  14. "https://marketplace.mozilla.org"     
  15.      ],      
  16.      "default_locale": "en"    
  17.    } 

JSON不需要CRLFs格式化。上面JSON的格式只是為簡化顯示,以便閱讀。

注意:第12行以上指定了App的安裝信息。

Mozilla Web Runtime包括一個應(yīng)用程序?qū)ο?mdash;—mozApps的對象(目前在Windows和Mac平臺上的每夜版Firefox中實現(xiàn)),有一個方法來安裝應(yīng)用程序。我們來看看,在一分鐘內(nèi)使用該API寫出代碼。

如果你想讓你的應(yīng)用通過Mozilla市場安裝,你不需要寫任何安裝代碼。當(dāng)你在市場提交應(yīng)用時,市場會為你的應(yīng)用創(chuàng)建一個列表頁面,該頁面包括會一個安裝按鈕。

安裝按鈕被點擊時會調(diào)用生成的代碼,告訴安裝的應(yīng)用如何運行。然后在運行時獲取應(yīng)用的manifest,除此之外,還會檢查,看看請求安裝應(yīng)用的域名是否被允許。

正如你在manifest清單文件上看到的,第14行指定了App可以被從“https://marketplace.mozilla.org”上安裝。

但是,您可能需要讓用戶從其他域名安裝應(yīng)用,例如自己的網(wǎng)站。

你可以看到第13行代碼,在我們的manifest樣本文件上列出了“http://timer.koscience.com”作為一個有效的指定“安裝”的位置。我可以指定盡可能多的域名,因為有我喜歡的通配符支持App授權(quán)安裝功能。

如果我們想從我們自己的網(wǎng)站上安裝的應(yīng)用程序,但是,我們需要實現(xiàn)自己的安裝邏輯。

我們可以創(chuàng)建一個頁面,類似Mozilla市場上的應(yīng)用列表頁面,或者可以讓安裝程序“自我”包含功能代碼,可以在安裝程序本身含有邏輯來實現(xiàn)。

例如,Workout Timer這個應(yīng)用,如下所示。

請注意排在計時器的底部的導(dǎo)航按鈕。

右邊***一個是:“安裝”。

如果應(yīng)用運行在支持mozApps的環(huán)境中,那么應(yīng)該就會出現(xiàn)“安裝”按鈕。由于此應(yīng)用(K.O. Timer)是一個HTML5應(yīng)用程序,它可以運行在任何兼容HTML5的瀏覽器。如果它運行在瀏覽器/支持mozApps的runtime上,就會出現(xiàn)“安裝”按鈕。

如果應(yīng)用程序已安裝,我們就不讓它出現(xiàn)安裝按鈕。

這里是一個JavaScript方法來測試運行和安裝狀態(tài)。

如果是運行時,當(dāng)前應(yīng)用沒有安裝,那么就顯示安裝按鈕。

當(dāng)應(yīng)用程序尚未安裝,在某些情況下,你可能會選擇不要顯示“安裝”按鈕,只需設(shè)置在啟動安裝程序時直接啟動即可。

(此代碼使用jQuery)

  1. function TestAppInstalled() {  
  2.     if ((!navigator.mozApps) || (!navigator.mozApps.getSelf)) {  
  3.         /*-----------------------------------------------------------+  
  4.         || Test to see if the Mozilla Apps Web Runtime is supported  
  5.         || HACK: Testing for either mozApps OR mozApps.getSelf is a   
  6.         || hack.   
  7.         || This is needed because some pre-beta versions of Firefox   
  8.         || have the object present but nit fully implemented.  
  9.         || TODO: Update when Firefox Desktop & Mobile are complete.  
  10.         ------------------------------------------------------------*/ 
  11.         return;  
  12.     }  
  13.    
  14.     var MyAppSelf = navigator.mozApps.getSelf();  
  15.     MyAppSelf.onsuccess = function() {  
  16.         if (! this.result) {  
  17.             // Application is not "installed"  
  18.             $('#InstallButton').show();  
  19.         }  
  20.         else {  
  21.              // This "MozApp" is already installed.  
  22.         }  
  23.         return;  
  24.     }  
  25.     MyAppSelf.onerror = function() {  
  26.         alert('Error checking installation status: ' +   
  27.                this.error.message);  
  28.         return;  
  29.     }  

當(dāng)用戶點擊安裝按鈕,下面的代碼就會被執(zhí)行。

  1. $('#InstallButton').click(function() {  
  2.     var installation = navigator.mozApps.install(  
  3.                 "http://timer.koscience.com/kotimer.webapp");  
  4.     installation.onsuccess = function() {  
  5.         $('#InstallButton').hide();  
  6.         alert("K.O. Timer has been successfully installed.....");  
  7.     }  
  8.     installation.onerror = function() {  
  9.         alert("APP: The installation FAILED : " + this.error.name);  
  10.     }  
  11. }); 

因此,當(dāng)用戶使用支持mozApps瀏覽器(目前只有每夜版火狐支持)瀏覽到K.O. Timer應(yīng)用(timer.koscience.com)并點擊列“安裝”按鈕,mozApps runtime就開始安裝。

用戶點擊安裝“按鈕”后,就會出現(xiàn)在上圖中的對話框→安裝→完成,用戶就會在本地有一個App。

在Windows中,你會得到一個桌面快捷方式。

以及“開始”菜單項。

當(dāng)然現(xiàn)在用戶也可以在Mozilla 我的App收藏集打開應(yīng)用。

重要的是要記住,這些啟動器已經(jīng)在用戶的系統(tǒng)上被創(chuàng)建,但應(yīng)用程序本身仍存于云端。開發(fā)人員可以利用AppCache,LocalStorageIndexedDB這些HTML5特性,選擇給應(yīng)用添加“離線”功能。

提供HTML5應(yīng)用,再加上強大的HTML5應(yīng)用發(fā)布機制,這將是Mozilla市場未來開放時,能夠提供給人們本地運行的能力,創(chuàng)造偉大的技術(shù)標(biāo)準(zhǔn)為基礎(chǔ)性應(yīng)用開發(fā)人員的機會。

原文鏈接:http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/

【編輯推薦】

  1. 2012年Web設(shè)計和開發(fā)的15個趨勢
  2. 別怕!我們還有HTML 5和CSS3
  3. Web開發(fā)不可少的六個HTML 5編輯器
  4. 開發(fā)HTML5跨平臺游戲相關(guān)經(jīng)驗
  5. HTML 5實現(xiàn)拍照上傳應(yīng)用實現(xiàn)
責(zé)任編輯:張偉 來源: HTML5研究小組
相關(guān)推薦

2012-07-02 14:58:16

HTML5

2011-11-21 14:21:56

HTML 5

2011-06-27 09:47:37

HTML 5

2011-06-24 13:58:06

CSS3HTML5

2021-11-18 11:52:49

HTML5小游戲JS

2017-12-05 14:22:25

新華三

2020-09-22 16:56:40

F5多云安全

2009-10-26 15:36:56

Windows Emb

2010-09-29 17:59:55

酷睿i3迷你PC

2023-03-08 17:33:36

KubernetesJava

2010-05-21 13:27:02

2014-06-25 18:39:16

2015-10-31 18:41:58

MDSA線下公開課

2020-12-17 13:24:50

F5感知可控隨需而變

2009-09-14 17:44:09

華碩服務(wù)器高可用

2013-04-03 14:38:48

青島海關(guān)Windows Ser

2011-06-24 14:53:13

寶通至強E3

2009-11-19 08:54:20

Windows 7系統(tǒng)生態(tài)鏈

2013-04-10 13:21:21

浙大網(wǎng)新Windows 8微軟

2009-12-24 10:55:08

點贊
收藏

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