多媒体
HTML5通过添加<video>和<audio>这两个标签显著提升多媒体内容在Web上的集成度。这两个标签帮助Web开发者摆脱对插件的依赖,可以更加方便地在Web中使用音频和视频内容了。从此可以像处理图像一样方便地处理多媒体内容了。
这两个标签允许播放多媒体内容,而HTML Media Capture和Media Capture API定义了使用摄像机和麦克风记录多媒体内容的方法,这是移动设备上普遍具备的功能。Web Real-Time Communications Working Group也将开发可以直接处理摄像机和麦克风上的数据流的API。
此外,Web平台上还新增了两个API用来处理多媒体内容。一个是我们之前已经提到过的Canvas 2D ContextAPI:可以使用它来修改图像,甚至有可能用它来编辑视频。W3C Incubator Group同样也在开发一个音频API(Mozilla’s proposal draft),诣在修改音频内容,其中包括对声音的分析和合成——这些工作为Audio Working Group今后的开发打下了良好的基础。
最后,Device APIs Working Group的新规范中包含了一个API,该API用于读取设备当前音频的音量,并通过与用户的交互调整设备音量。
所有的这些功能表明Web正向着综合的多媒体平台发展。将Web和TV领域结合起来是目前的发展趋势(这一点已经得到了W3C Web and TV Interest Group的证实)。越来越多的用户开始使用移动设备收看电视节目,移动设备将成为第二大电视媒体,用户能够通过他们的移动设备找到更多的电视节目甚至在观看节目的同时还能与节目进行互动。
Feature | Specification | Working Group | Maturity | Stability | Latest editors draft | Current implementations | Test suite |
Device information | Device Description Repository Simple API | Device Description Working Group (now closed) | Recommendation | finished | N/A | Limited | Good Coverage |
Systems Information API | Device APIs Working Group | Working Draft | Likely to be vastly reworked | Last update March 2011 | N/A | N/A | |
Media Capture API | Device APIs Working Group | Working Draft | Likely to be vastly reworked | Last update December 2010 | N/A | N/A | |
CSS-based adaptation | Media Queries | CSS Working Group | Candidate Recommendation | Mostly finished | Last update August 2010 | Widely deployed | Good coverage |
表单
基于Web的应用程序之所有能够有丰富的信息主要是靠用户的输入。由于移动设备上键盘的限制,在移动设备上输入大量的信息对很多用户来说是一件相当麻烦的事;HTML5通过添加一组新的表单控制类型来简化用户的输入:
- 日期时间条利用一组表单控件(如
<input type="date">
)使得用户可以直接使用本地的日期控件; -
<input type="email">
、<input type="tel">
和<input type="url">
可以简化用户对复杂数据的输入方式,例如可以使用虚拟键盘。或者是利用设备的访问记录(如地址簿或者是书签等)简化用户输入工作;
- Pattern属性既能简化用户的输入,又能避免服务器端的检查(服务器检查需要花费一个往返的网络开销)或是基于JavaScript的检查(JavaScript的检查开销通常更大);
- Placeholder属性在用户输入文本时,会根据需要输入的文本类型给用户相应的提示信息;
- 新增加的<datalist>元素允许用户根据输入的需要创建新的输入类型,而不再受限于原有的类型定义。
Feature | Specification | Working Group | Maturity | Stability | Latest editors draft | Current implementations | Test suite |
Touch-based interactions | Touch Events Specification | Web Events Working Group | Working Draft | Early draft | Updated regularly | Growing deployment | None |
Vibration | N/A | Device API | N/A | Not started | Not started | None | None |
Intent-based events | N/A | Web Events Working Group | N/A | Not started | Not started | None | None |
Notification | Web Notifications | Web Notifications Working Group | Working Draft | Early draft | Regularly updated | None | None |
System beeps | N/A | Device API | N/A | Not started | Not started | None | None |
Speech-based interactions | N/A | HTML Speech Incubator Group, planning to request creation of standards-track work | N/A | N/A | Use cases and requirements | N/A | N/A |
Model-based user interfaces | N/A | Proposed Model-Based User Interfaces Working Group | N/A | N/A | Model-based UI Incubator Group report | N/A | N/A |
数据存储
许多应用程序的主要功能就是保存信息,显示信息,以及将系统上其他文件和服务的数据整合起来。
Web Storage规范为简单的数据存储提供了两个基本方法——localStorage和sessionStorage,localStorage可以将数据一直保留在本地,而localStorage可以在浏览器会话保持期间帮助用户保存数据。
Web平台新增了许多用于与设备文件系统交互的API:File Reader API用于下载文件的内容信息,File Writer API用于保存或者修改文件,新增的FileSystems API支持更加常用的文件操作(包括目录管理操作)。
除了对文件的操作外,Web平台还提供了Indexed Database API,用来操作结构化的数据库对象,在JavaScript中可以方便地调用这些API,从而高效地修改和查询数据。值得一提的是,客户端的基于SQL的数据库从2009年推出发展到今天,已经逐渐被新的系统所抛弃。
Feature | Specification | Working Group | Maturity | Stability | Latest editors draft | Current implementations | Test suite |
Address book data | Contacts API | Device APIs Working Group | Last Call Working Draft | Stabilizing | Regularly updated | Very limited | early draft |
Calendar data | Calendar API | Device APIs Working Group | Working Draft | Still changing | Regularly updated | Very limited | None |
(未完待续)
文章来源:standards for Web Applications on Mobile: August 2011 current state and roadmap