注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

phperwuhan的博客

记载一个phper的历程!phperwuhan.blog.163.com

 
 
 

日志

 
 

[原创]air学习笔记-html开发人员指南  

2012-01-06 18:00:19|  分类: air |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

来源:http://help.adobe.com/zh_CN/air/html/dev/index.html

ref--http://help.adobe.com/zh_CN/air/html/dev/WS5b3ccc516d4fbf351e63e3d118666ade46-7fb1.html

AIR 和 Safari Web 浏览器均使用 WebKit (www.webkit.org) 分析、布局和呈现 HTML 和 JavaScript 内容。AIR 的内置主机类和对象为传统上与桌面应用程序关联的功能提供了一个 API。这些功能包括读取和写入文件以及管理窗口。Adobe AIR 还继承了 Adobe? Flash? Player 的 API,其中包括声音和二进制套接字等功能。

重要说明:Adobe AIR 运行时的新版本可能包含 WebKit 的更新版本。AIR 新版本中的 WebKit 更新可能会对已部署的 AIR 应用程序造成意外更改。这些更改可能会影响应用程序中 HTML 内容的行为或外观。例如,WebKit 呈现中的改进或更正可能会更改应用程序用户界面中元素的布局。为此,我们强烈建议您在应用程序中提供一个更新机制。如果因 AIR 中包含的 WebKit 版本发生更改而需要更新应用程序,AIR 更新机制可提示用户安装应用程序的新版本。

下表列出了所使用的 WebKit 版本与 AIR 中使用的 WebKit 版本相同的 Safari Web 浏览器版本:

AIR 版本

Safari 版本

1.0

2.04

1.1

3.04

1.5

4.0 测试版

2.0

4.03

2.5

4.03

2.6

4.03

2.7

4.03

3

5.0.3

您始终可以通过检查由 HTMLLoader 对象返回的默认用户代理字符串来确定 WebKit 的已安装版本:

air.trace( window.htmlLoader.userAgent );

在 HTML 内容中使用 AIR API 是完全可选的。您可以完全使用 HTML 和 JavaScript 编写 AIR 应用程序。大多数现有 HTML 应用程序只需少量更改即可运行(假定它们使用的 HTML、CSS、DOM 和 JavaScript 功能与 WebKit 兼容)。

AIR 授予您对应用程序外观的完全控制权限。您可以使应用程序的外观类似于本机桌面应用程序。还可以关闭由操作系统提供的窗口镶边,并实现您自己的用于移动窗口、调整窗口大小和关闭窗口的控件。您甚至可以在没有窗口的情况下运行。

由于 AIR 应用程序直接在桌面上运行,且具有对文件系统的完全访问权限,因此,对应的安全模型比典型 Web 浏览器的安全模型更加严格。在 AIR 中,只有从应用程序安装目录加载的内容才会被放置到应用程序沙箱 中。应用程序沙箱具有最高级别的权限,且允许访问 AIR API。AIR 根据其他内容的来源将这些内容放置到隔离沙箱中。从文件系统加载的文件放置到本地沙箱中。使用 http: 或 https: 协议从网络加载的文件则根据远程服务器的域放置到相应沙箱中。禁止这些非应用程序沙箱中的内容访问任何 AIR API,且其运行方式与在典型 Web 浏览器中几乎一样。

 

ref--http://help.adobe.com/zh_CN/air/html/dev/WS5b3ccc516d4fbf351e63e3d118666ade46-7ec2.html

Adobe AIR 使用 HTML 渲染器、文档对象模型和 JavaScript 解释程序提供与浏览器完全相似的 JavaScript 环境。JavaScript 环境通过 AIR HTMLLoader 类表示。在 HTML 窗口中,HTMLLoader 对象包含所有 HTML 内容,而该对象又包含在 NativeWindow 对象中。通过 NativeWindow 对象,应用程序可以为用户桌面上显示的本机操作系统窗口的属性和行为撰写脚本。

 

 

关于 JavaScript 环境及其与 AIR 主机之间的关系

下图演示了 JavaScript 环境和 AIR 运行时环境的关系。虽然只显示了一个本机窗口,但是一个 AIR 应用程序可以包含多个窗口。(并且一个窗口可以包含多个 HTMLLoader 对象。)

显示小图形
JavaScript 环境具有其自己的 Document 和 Window 对象。JavaScript 代码可以通过 runtime、nativeWindow 和 htmlLoader 属性与 AIR 运行时环境交互。ActionScript 代码可以通过 HTMLLoader 对象的 window 属性与 JavaScript 环境交互,该属性是对 JavaScript Window 对象的引用。此外,ActionScript 和 JavaScript 对象均可以侦听由 AIR 和 JavaScript 对象调度的事件。

runtime 属性提供了对 AIR API 类的访问权限,使您可以新建 AIR 对象和访问类(也称为静态)成员。若要访问 AIR API,请向 runtime 属性添加该类的名称和包。例如,若要创建 File 对象,您将使用以下语句:

var file = new window.runtime.filesystem.File();
注: AIR SDK 提供了一个 JavaScript 文件,即 AIRAliases.js,该文件为最常用的 AIR 类定义了更便于使用的别名。导入该文件时,您可以使用 air.Class 简短形式替换 window.runtime.package.Class。例如,您可以使用 new air.File() 创建 File 对象。

NativeWindow 对象提供了用于控制桌面窗口的属性。您可以使用 window.nativeWindow 属性从 HTML 页内部访问包含的 NativeWindow 对象。

HTMLLoader 对象提供了用于控制内容的加载方式和呈现方式的属性、方法和事件。您可以使用 window.htmlLoader 属性从 HTML 页内部访问父 HTMLLoader 对象。

重要说明: 仅当作为应用程序的一部分安装的页作为顶级文档加载时,该页才具有 htmlLoadernativeWindowruntime 属性。将文档加载到 frame 或 iframe 中时不会添加这些属性。(只要子文档与父文档位于相同安全沙箱中,子文档即可访问父文档的这些属性。例如,加载到 frame 中的文档可以使用 parent.runtime 访问其父级的 runtime 属性。)

关于安全性

AIR 根据原始域在安全沙箱中执行所有代码。应用程序内容限制为从应用程序安装目录加载的内容,该内容放置到应用程序 沙箱中。只有在此沙箱中运行的 HTML 和 JavaScript 才能访问运行时环境和 AIR API。同时,在页 load 事件的所有处理函数返回之后,将在应用程序沙箱中阻止 JavaScript 的大多数动态计算和执行操作。

通过将应用程序页加载到 frame 或 iframe 中,并对 frame 设置特定于 AIR 的 sandboxRootdocumentRoot 属性,可以将该应用程序页映射到非应用程序沙箱中。通过将 sandboxRoot 值设置为实际远程域,您可以使沙箱中的内容跨脚本访问该域中的内容。当加载远程内容或撰写远程内容脚本时(例如,在 mash-up 应用程序中),使用上述方法映射页非常有用。

允许应用程序和非应用程序内容相互跨脚本访问的另一方法是创建沙箱桥,这也是向 AIR API 授予非应用程序内容访问权限的唯一方法。使用父级到子级 桥,子 frame、iframe 或窗口中的内容能够访问在应用程序沙箱中定义的指定方法和属性。反之,使用子级到父级 桥,应用程序内容能够访问在子级的沙箱中定义的指定方法和属性。通过设置窗口对象的 parentSandboxBridgechildSandboxBridge 属性可以建立沙箱桥。有关详细信息,请参阅 Adobe AIR 中的 HTML 安全性以及 HTML frame 和 iframe 元素

关于插件和嵌入对象

AIR 支持 Adobe? Acrobat? 插件。用户必须安装有 Acrobat 或 Adobe? Reader? 8.1(或更高版本)才能显示 PDF 内容。HTMLLoader 对象提供了用于查看用户系统是否可以显示 PDF 的属性。SWF 文件内容也可以在 HTML 环境中显示,但 AIR 中构建有此功能,因此无需使用外部插件。

AIR 中不支持任何其他 WebKit 插件。

  评论这张
 
阅读(509)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017