使用标准web技术构建的应用称为web应用。web应用可以在任何现代浏览器中运行,可以用任何你喜好的 工具开发。区分web应用与web网站的特征是:应用是由用户安装的,是自包含的,一般不需要打开新的浏览器 窗口,此外还可以离线运行。Gmail、Twitter和Etherpad都是web应用的例子。 Mozilla的Open Web Apps项目可以让已有的网站做一些额外的工作,就可以转换为web应用,从而运行在 富功能(rich)的强大的计算环境中。这些应用运行在桌面浏览器和移动设备上,相对于web站点,用户给容易 获得,也更容易运行。web应用还在发展中,一些新的特性不断加入,比如在用户的不同设备间进行同步。 准备工作如果你是第一次开发web应用,不妨看一下implementation state of the API. 发布应用基于一个web站点创建web应用,唯一要做的事情就是添加一个app manifest。这是一个用来说明应用的 JSON 文件,包括应用的名字、图标以及介绍。 manifest文件必须位于与web站点相同的域,其Content-Type必须是application/x-web-app-manifest+ json(备注:目前对于Firefox这并不是强制性的,但是对于Firefox市场这是必须的)。关于 manifest的详细介绍 参考 app manifest 文档。要验证manifest文件,可以参考验证manifest。 相同源的策略需要注意的是每一个应用都需要放到自己的域里面,不同的应用不可以共享相同的域。举个例子,比较可行的方案是 将不同的应用放到不同的子域中。关于应用的manifests 有更多关于源的信息。 (译者注:源(origin)指的是应用的URL中协议、域及端口的组合) 检查应用是否被安装当web浏览器加载应用的页面时,页面需要处理用户没有安装该应用的情况。你可以调用checkInstalled() 来检查 一个应用是否被安装,就像这样:
安装应用你可以直接在你的站点上分发应用。测试一下从你的站点安装应用,这也是比较好的做法,这样可以在提交到Firefox 市场之前确保manifest是正确的。 为此,只需创建一个按钮或者链接去执行下面的JavaScript代码:
调用navigator.mozApps.install() 会让浏览器加载manifest (例如:example.webapp),并且会询问用户是否 安装这个应用。如果用户同意,应用就会被安装到浏览器中。在OS X,应用会被安装到"Applications" 文件夹。 对于navigator.mozApps.install(),第二个参数是install_data,用来将一些信息保存在用户的已安装应用的数据存 储中。这些信息可以同步到用户的其他设备上,也可以在应用中通过getSelf()调用 (参考 检查应用是否已安装)来获 取。例如:
推广应用Mozilla建立的应用市场负责应用的获取、评论、打分以及支付,它使用的是开发的架构,第三方可以用来创建自己 的市场。不过你并不是必须在某个市场中列出你的应用。 如果你想让别人购买你的应用,请看 市场的支付。 Firefox市场预期很快会发布。你也可以 订阅应用开发者通信 来获取关于FireFox市场进展的新闻,里面也有一些 创建应用的提示和建议。 离线运行和设备的高级API使用现代的web浏览器添加了很多不错的特性,让你可以离线运行应用或者访问设备的能力。这里有一些有用的链接:
本地保存数据localStorage API提供了key-value的持久存储功能,可以用来在访问应用时追踪用户数据。如果用户使用的是现 代的浏览器,例如Firefox 4或更新版本,或者是Google Chrome,你也可以用IndexedDB,这是一个结构化的、 高性能的客户端数据存储。 如果你打算在用户的所有设备的应用实例间共享数据,你需要在调用install()函数时用到install_data参数,就像之 前提到过的那样。 例子这里有一些开放的web应用:
参与翻译(1人): |