FIREFOX OS

25
Text FIREFOX OS 应应应应 应应

description

FIREFOX OS. 应用开发、发布. 使用HTML5, CSS 和 JavaScript 建立Web应用. Web应用. 使用标准Web技术和Web工具开发,在浏览器中运行 Web站点添加少量信息可以改造为Web应用。 运行于多种平台:桌面浏览器、移动设备。. Web应用源码结构. HTML文件 JS文件 CSS、图像及其他资源 Manifest文件. 步骤. 1. 使用HTML5, CSS, & Javascript 开发web应用. 2. 为应用创建manifest文件. 3. 发布/安装应用. 1. - PowerPoint PPT Presentation

Transcript of FIREFOX OS

Page 1: FIREFOX OS

Text

FIREFOX OS应用开发、发布

Page 2: FIREFOX OS

使用 HTML5, CSS 和 JavaScript 建立 Web 应用 .使用 HTML5, CSS 和 JavaScript 建立 Web 应用 .

Page 3: FIREFOX OS

Web 应用Web 应用

Page 4: FIREFOX OS

•使用标准 Web 技术和 Web 工具开发,在浏览器中运行

•Web 站点添加少量信息可以改造为Web 应用。

•运行于多种平台:桌面浏览器、移动设备。

Page 5: FIREFOX OS

Web 应用源码结构•HTML 文件

•JS 文件

•CSS 、图像及其他资源

•Manifest 文件

Page 6: FIREFOX OS

步骤步骤

Page 7: FIREFOX OS

使用 HTML5, CSS, & Javascript 开发 web 应用

1.

为应用创建 manifest 文件2.

发布 / 安装应用3.

Page 8: FIREFOX OS

1.使用 HTML5, CSS, &

Javascript 开发 web 应用

Page 9: FIREFOX OS

•重用现有的网站 /web 应用,或者从头开发新的 web 应用。

•利用 HTML5 的功能 :

• 本地存储 (Local Storage)

• 离线清单 (Offline manifest)

• 索引型数据库 (Indexed DB)

•Web API

•设计要适应不同的屏幕分辨率和屏幕方向。

Page 10: FIREFOX OS

为应用创建 manifest 文件

2.

Page 11: FIREFOX OS

创建一个 manifest.webapp 描述文件创建一个 manifest.webapp 描述文件

Page 12: FIREFOX OS

{ "version": "1.0", "name": “My App", "description": “Simple app description!", "icons": { “60": "/img/icon-60.png" }, "developer": { "name": "Mozilla Labs", "url": "http://mozillalabs.com" }, “permissions": { “settings": {“access", “readwrite” }, “camera": {} }, "installs_allowed_from": ["*"], "appcache_path": "/cache.manifest", "locales": { “en": { "name": “My App", "description": " Simple app description " }, “zh-CN": { “name”: “My App”, “description”: “ 应用的简单描述。 " } }, "default_locale": "en"}

Page 13: FIREFOX OS

应用权限 (Permission)•部分功能敏感的 WebAPI 使用前需要声明权限

•声明格式

•{ 权限名 : { 访问属性 }}

•示例

访问属性包括:readreadwrite readcreatecreateonly

访问属性包括:readreadwrite readcreatecreateonly

"permissions": { "device-storage:pictures":{ "access": "readwrite" }, "device-storage:videos":{ "access": "readwrite" }, "settings":{ "access": "readonly" }, "camera":{}},

Page 14: FIREFOX OS

Apps CSP

• CSP

•Content Security Policy

•保证内容安全,防止跨站攻击等

•Privileged App 的默认 CSP

•default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'

Page 15: FIREFOX OS

Privileged App 的默认CSP

•default-src *; // 默认接受所有内容

• script-src 'self'; // 不允许使用其他域的js, 不允许使用内联 js, 不允许 eval

• object-src 'none';// 不允许使用 Plugin

•style-src 'self' 'unsafe-inline'// 不允许使用其他域的 css ,但可使用内联 css

Page 16: FIREFOX OS

发布 / 安装应用

3.

Page 17: FIREFOX OS

两种方式•托管的应用 (Hosted App)

•Web 站点托管应用

•独立域名或子域名

•打包的应用 (Packaged App)

•所有资源和文件打包为一个 zip 压缩包

Page 18: FIREFOX OS

让 Web Server 识别 manifest.webapp 文件,添加 Content-type/MIME type:

application/x-web-app-manifest+json

让 Web Server 识别 manifest.webapp 文件,添加 Content-type/MIME type:

application/x-web-app-manifest+json

托管的应用服务器设置

Page 19: FIREFOX OS

Apache - in mime.types:application/x-web-app-manifest+json webappApache - in .htaccess:AddType application/x-web-app-manifest+json webappNGinx - in mime.types:types { text/html html htm shtml; text/css css; text/xml xml; application/x-web-app-manifest+json webapp;}

Page 20: FIREFOX OS

IIS:In IIS Manager, right-click the local computer, and click Properties.Click the MIME Types button.Click New.In the Extension box, type the file name extension.In the MIME type box, type a description that exactly matches the file type defined on the computer.Click OK.

Page 21: FIREFOX OS

验证应用

Page 22: FIREFOX OS

在线安装托管应用在线安装托管应用

Page 23: FIREFOX OS

var request = navigator.mozApps.install( "http://mozillalabs.com/MozillaBall.webapp", { user_id: "some_user" });

request.onsuccess = function() { // Success! Notification, launch page etc}

request.onerror = function() { // Failed. this.error.name has details}

Page 24: FIREFOX OS

Thank You!

Page 25: FIREFOX OS

参考•CSP

•https://developer.mozilla.org/en-US/docs/Security/CSP/Introducing_Content_Security_Policy

•https://developer.mozilla.org/en-US/docs/Security/CSP/CSP_policy_directives

• 权限

•https://developer.mozilla.org/en-US/docs/Apps/App_permissions