HTML的最新版本,即HTML5,已经在软件和信息行业产生了巨大的影响。当我们说“HTML5”时,我们实际上是指HTML/CSS/JavaScript“混合”。在Mozilla,我们经常提到“WebRun-Time”或WebRT。Mozilla应用程序(包括Web运行时)的讨论记录在此处。怀疑论者喜欢说:“HTML5还没有准备好”。就在本周,我看到一篇文章声称HTML5还需要10年才能“准备好”。我想问:准备什么?当然,还有很多API还在开发中,但在大多数情况下,HTML5现在已经在进行中了。基本上,它已经发展到现在,并准备在不久的将来被普通人使用。近期,Firefoxnightly频道推出了MozillaWebApps安装体验。(阅读有关Firefox发布渠道的更多信息。)此功能允许我们在Windows或Mac上本地托管HTML5应用程序(将来也将支持Linux和Android)以获得类似桌面的体验。Mozilla以出色的方式做到了这一点,Mozilla市场简洁地列出了您的应用程序。该市场将很快向公众开放,开发人员可以将他们的应用程序提交到市场生态系统。提交申请只需要申请一个BrowserID。HTML5应用程序需要包含MozillaWebRuntime运行时环境和清单文件。manifest文件其实就是一个简单的JSON文件,声明了App的一些数据。这是应用程序的示例清单文件。{"version":"1.0","name":"KORoundTimer","description":"AWorkoutTimerforFightingAthletes!","icons":{"128":"/images/icon-128.png"},"developer":{"name":"JoeStagner","url":"http://koscience.com"},"installs_allowed_from":["http://timer.koscience.com","https://marketplace.mozilla.org"],"default_locale":"en"}JSON不需要CRLF进行格式化。上述JSON的格式只是为了简化展示,便于阅读。注意:上面第12行指定了App的安装信息。MozillaWebRuntime包含一个应用程序对象——mozApps对象(目前在Windows和Mac平台上的夜间版本的Firefox中实现),以及安装该应用程序的方法。让我们看一下并在一分钟内使用此API编写代码。如果您希望通过MozillaMarketplace安装您的应用程序,则无需编写任何安装代码。当您将应用程序提交到市场时,市场会为您的应用程序创建一个列表页面,其中包含一个安装按钮。单击安装按钮时会调用生成的代码,告诉已安装的应用程序如何运行它。然后在运行时获取应用程序的清单,此外还要检查是否允许请求安装应用程序的域名。正如您在清单文件中所见,第14行指定可以从“https://marketplace.mozilla.org”安装应用程序。但是,您可能需要允许用户安装来自其他域(例如您自己的网站)的应用程序。您可以在第13行看到,我们的清单示例文件将“http://timer.koscience.com”列为有效的指定“安装”位置。有多少个域名我就指定多少个我喜欢的通配符来支持app授权安装功能。但是,如果我们想从我们自己的网站安装应用程序,我们需要实现我们自己的安装逻辑。我们可以创建一个页面,类似于Mozilla市场上的应用程序列表页面,或者我们可以让安装程序“自我”包含功能代码,这可以通过在安装程序本身中包含逻辑来实现。例如,锻炼计时器应用程序如下所示。请注意计时器底部的导航按钮。右边最后一个是:“安装”。如果应用程序在支持mozApps的环境中运行,则会出现“安装”按钮。由于此应用程序(K.O.Timer)是一个HTML5应用程序,它可以在任何兼容HTML5的浏览器上运行。如果它在支持mozApps的浏览器/运行时中运行,则会出现“安装”按钮。如果应用已经安装,我们不会让它显示安装按钮。这是一个测试运行和安装状态的JavaScript方法。如果它正在运行且当前应用程序未安装,则会显示安装按钮。当应用程序未安装时,在某些情况下,您可以选择不显示“安装”按钮,只需将其设置为在启动安装程序时直接启动即可。(此代码使用jQuery)functionTestAppInstalled(){if((!navigator.mozApps)||(!navigator.mozApps.getSelf)){/*----------------------------------------------------------+||测试是否支持MozillaAppsWebRuntime||HACK:测试foreithermozAppsORmozApps.getSelfisa||破解。||这是必需的,因为Firefox的某些预测试版||具有该对象但已完全实现。||TODO:当Firefox桌面和移动设备完成时更新。-------------------------------------------------------*/返回;}varMyAppSelf=navigator.mozApps.getSelf();MyAppSelf.onsuccess=function(){if(!this.result){//应用程序未“安装”$('#InstallButton').show();}else{//这个“MozApp”已经安装好了。}返回;}MyAppSelf.onerror=function(){alert('Errorcheckinginstallationstatus:'+this.error.message);返回;}}当用户点击安装按钮时,下面的代码将被执行。$('#InstallButton').click(function(){variinstallation=navigator.mozApps.install("http://timer.koscience.com/kotimer.webapp");installation.onsuccess=function(){$('#InstallButton').hide();alert("K.O.Timerhasbeensuccessfulinstalled...");}installation.onerror=function(){alert("APP:TheinstallationFAILED:"+this.error.name);}});所以,当用户浏览到K.O.Timerapp(timer.koscience.com)使用支持mozApps的浏览器(目前只有NightlyFirefox)点击栏中的“安装”按钮,mozApps运行时就安装好了。用户点击“安装按钮”后,会出现上图的对话框→安装→完成,用户本地就会有一个App。在Windows中,您可以获得桌面快捷方式。和开始菜单项。当然,用户现在也可以在MozillaMyApp集合中打开应用。请务必记住,这些启动器已在用户系统上创建,但应用程序本身仍驻留在云端。开发人员可以选择通过利用AppCache、LocalStorage或IndexedDB等HTML5功能为其应用程序添加“离线”功能。提供HTML5应用,加上强大的HTML5应用发布机制,将在未来Mozilla市场开放时,为人们提供本地运行的能力,为基础应用开发者创造伟大的技术标准。原文链接:http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/【编辑推荐】2012年网页设计与开发的15个趋势害怕!我们还有HTML5和CSS3Web开发不可或缺的六款HTML5编辑器HTML5跨平台游戏开发相关经验HTML5实现图片上传应用实现
