设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

Firefox OS 应用开发指南之预备知识

2013-6-17 11:10| 发布者: 红黑魂| 查看: 1180| 评论: 0|来自: 开源中国编译

摘要:   使用标准web技术构建的应用称为web应用。web应用可以在任何现代浏览器中运行,可以用任何你喜好的工具开发。区分web应用与web网站的特征是:应用是由用户安装的,是自包含的,一般不需要打开新的浏览器窗口,此 ...

  使用标准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() 来检查

一个应用是否被安装,就像这样:

01var request = navigator.mozApps.checkInstalled("http://path.to/my/example.webapp");
02request.onsuccess = function() {
03  if (request.result) {
04    // we're installed
05  else {
06    // not installed
07  }
08};
09request.onerror = function() {
10  alert('Error checking installation status: ' this.error.message);
11};

安装应用

你可以直接在你的站点上分发应用。测试一下从你的站点安装应用,这也是比较好的做法,这样可以在提交到Firefox

市场之前确保manifest是正确的。

为此,只需创建一个按钮或者链接去执行下面的JavaScript代码:

1var request = navigator.mozApps.install("http://path.to/my/example.webapp");
2request.onsuccess = function() {
3  // 太棒了 - 显示一条消息,或者跳转到新的页面
4};
5request.onerror = function() {
6  // 悲剧了 - 显示错误信息
7};

调用navigator.mozApps.install() 会让浏览器加载manifest (例如:example.webapp),并且会询问用户是否

安装这个应用。如果用户同意,应用就会被安装到浏览器中。在OS X,应用会被安装到"Applications" 文件夹。


对于navigator.mozApps.install(),第二个参数是install_data,用来将一些信息保存在用户的已安装应用的数据存

储中。这些信息可以同步到用户的其他设备上,也可以在应用中通过getSelf()调用 (参考 检查应用是否已安装)来获

取。例如:

1navigator.mozApps.install(
2    "http://path.to/my/example.webapp",
3    {
4        user_id: "some_user"
5    }
6);


推广应用

Mozilla建立的应用市场负责应用的获取、评论、打分以及支付,它使用的是开发的架构,第三方可以用来创建自己

的市场。不过你并不是必须在某个市场中列出你的应用。

如果你想让别人购买你的应用,请看 市场的支付。

Firefox市场预期很快会发布。你也可以 订阅应用开发者通信 来获取关于FireFox市场进展的新闻,里面也有一些

创建应用的提示和建议。


离线运行和设备的高级API使用

现代的web浏览器添加了很多不错的特性,让你可以离线运行应用或者访问设备的能力。这里有一些有用的链接:


本地保存数据

localStorage API提供了key-value的持久存储功能,可以用来在访问应用时追踪用户数据。如果用户使用的是现

代的浏览器,例如Firefox 4或更新版本,或者是Google Chrome,你也可以用IndexedDB,这是一个结构化的、

高性能的客户端数据存储。

如果你打算在用户的所有设备的应用实例间共享数据,你需要在调用install()函数时用到install_data参数,就像之

前提到过的那样。

例子

这里有一些开放的web应用:



参与翻译(1人)


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部