`
php教程分享
  • 浏览: 11475 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

你或许想要用到的三个新的JavaScript API

阅读更多
如果你是一个SitePoint的老读者并且是我的粉丝的话,那么你已经知道我写了很多关于HTML5以及JS API的文章。到目前为止,我已经发布了一些介绍你现在就可以马上使用的API,尽管可能会用到polyfill的方式。(译注:不知道什么是polyfill请点击这里。)
但是今天我可能要打破这个常规来给大家介绍一些仍然还处在初期阶段的API。大家必须知道这些API是非常新的,在这三个里面有两个都是在几天之前刚刚发布的。正因如此,这些API现目前都还无法使用。但是如果你有兴趣了解它们具体是用来做什么的,你可以继续阅读下面关于它们的详细介绍,同时也欢迎留下你的看法和回应。
废话不多说,现在开始!
Web Alarms API
Web Alarms API让你可以配置设备的闹铃设置,从而能够安排通知消息或让某个特定的应用在指定的时间点启动。这个API最典型的用法会涉及到像闹钟,日历,或其他任何需要在特定时间进行特定操作的程序。
自从去年开始,这个API刚刚成为了一个W3C的设计草案。因此所有有待成为W3C官方推荐的相关细节都还在初期阶段。这个API需要通过window.navigator对象下的alarms属性来使用。alarms属性会提供三个函数:
getAll(): 从设备获取全部已有的闹铃并以包含Alarm对象的数组形式返回。
add(): 注册一个基于Date对象的闹铃并返回一个AlarmRequest对象。
remove(): 通过唯一ID移除一个之前注册的闹铃(唯一性仅针对应用本身)
为了向大家演示理想情况下这些函数应当如何使用,这里有一个添加闹铃的例子(请记住现目前任何浏览器都不支持这段代码)
var alarmId;
var request = navigator.alarms.add(
    new Date("June 29, 2012 07:30:00"),
    "respectTimezone",
);

request.onsuccess = function (e) {
    alarmId = e.target.result;
};

request.onerror = function (e) {
    alert(e.target.error.name);
};
如果你想要了解更多关于Web Alarms API,请参阅相关细节文档。
Presentation API
Presentation API的目标就是让投影仪或TV这样的第二显示设备能够被Web使用,包括所有通过有线(HDMI,DVI等)连接以及通过无线(MiraCast, Chromecast, DLNA, AirPlay等)的设备。这个API所做的就是在请求页面与第二显示设备上的演示页面之间实现消息互通。
请注意该API细节并不属于W3C标准,也不在W3C标准计划当中。这个API需要通过window.navigator对象下的presentation属性来使用。该属性提供了一个叫requestSession()函数,以及present和availablechange两个事件。requestSession()函数可以用来启动或恢复第二显示设备上的演示。它会返回一个session对象指代当前的演示。当通过requestSession()传入的url里面的演示内容被加载完成后,演示屏幕的页面会收到present事件。最后,在第一张演示出现后或者最后一张演示完成后会发出availablechange事件。
举个例子,来自细节文档,该API的用法如下所示:
<button disabled>Show</button>
<script>
var presentation = navigator.presentation,
    showButton = document.querySelector('button');
presentation.onavailablechange = function(e) {
  showButton.disabled = !e.available;
  showButton.onclick = show;
};
function show() {
  var session = presentation.requestSession('http://example.org/');
  session.onstatechange = function() {
    switch (session.state) {
      case 'connected':
        session.postMessage(/*...*/);
        session.onmessage = function() { /*...*/ };
        break;
      case 'disconnected':
        console.log('Disconnected.');
        break;
    }
  };
}
</script>
如果你想要了解更多关于Presentation API的消息,可以看看最终报告。
Standby API
Standby API让你可以在顶层浏览器页面中请求屏幕持续显示锁。这可以防止设备进入省电状态(例如屏幕自动关闭)。这个功能对有些web应用来说至关重要。例如,想像一下你正在驾车并在手机上使用基于web的导航软件(非本地应用)。如果你不去触碰屏幕的话,你的手机的屏幕会自动关闭,除非你事前在手机上进行过相关的设置。在这样的情况下,通常你是想要让屏幕保持显示状态的。这恰恰是这个API适用的地方。
这个API需要通过window.navigator对象下的wakeLock属性来使用。它会提供两个函数:
request(): 使当前应用能让屏幕保持显示状态。
release(): 释放持续显示锁,这样屏幕就不会再被强制要求显示。
这两个函数都只接受一个参数,其只能是“screen”或“system”。前者表示操作针对的是设备屏幕,而后者针对的是除屏幕之外如CPU或广播之类的其他设备资源。
以下例子会演示如何适用该API让设备屏幕保持显示状态:
navigator.wakeLock.request("display").then(
    function successFunction() {
        // do something
    },
    function errorFunction() {
        // do something else
    }
);
要让设备允许屏幕关闭,我们可以用以下方法:
navigator.wakeLock.release("display");
如果你想要了解关于Standby API的更多信息,可以参考这个非官方草案。
总结
在这篇文章里我给大家介绍了一些崭新的JS API。我要再次强调因为它们都还处在非常早期的阶段,所以目前没有浏览器支持。因此我们也没法实际地操作它们。然而正因为它们如此之新大家现在都有机会跟进它们接下来的发展甚至参与帮助它们的细节设计的完善。
Web开发的未来一片光明,加入进来吧!
免费领取LAMP兄弟连原创PHP视频教程光盘/《细说PHP》精要版,详情咨询官网客服:
http://www.lampbrother.net
分享到:
评论

相关推荐

    学习java时用到的API

    "学习java时用到的API"这个主题涵盖了Java开发中多个重要框架和语言特性的中文版API文档,对于初学者和经验丰富的开发者来说都是非常宝贵的资源。 首先,我们来看`J2SE6.0 API(冷冬大雪).chm`,这是Java标准版6.0...

    javascript API 库函数

    JavaScript API库函数是开发者在编写JavaScript代码时经常会用到的一系列预定义的工具集合,它们大大简化了开发过程,提高了代码的可复用性和效率。本文将深入探讨JavaScript库函数的各个方面,帮助你更好地理解和...

    JavaScript在线API文档生成文献综述.doc

    JavaScript 在线 API 文档生成文献综述 本资源摘要信息将详细介绍 JavaScript 在线 API 文档生成文献综述的知识点,涵盖 JavaScript 语言背景、脚本语言、JavaScript 语言特性、API 文档、API 文档生成技术、编译...

    api.rar_javascript

    在“JSF中文教程.chm”中,你将找到JavaServer Faces (JSF)的相关知识,它是一个用于构建用户界面的Java框架,能与JavaScript紧密协作,提供服务器端的组件模型和事件处理。 "掌握自定义JSP标签.chm"涵盖了Java...

    包括所有 API函数声明及可能用到的所有常数

    winuser.h -- USER procedure declarations, constant definitions and macros Copyright ...提取子C的winuser.h文件,包括所有VB或C#调用API时需要用到的常数及其声明.C也正是内置了该文件才可以直接调用API而无需声明.

    其他API方面的作品(API)

    数据库管理系统的API,如SQL Server或MySQL的API,可能会被用到以进行数据存储和检索。 “自由落体.rar”和“平抛.rar”这两个文件名暗示了可能是与物理学相关的模拟软件。在这种情况下,API可能涉及数值计算库,如...

    C#调用api接口

    然后,我们要声明在程序中所要用到的API函数。我们的程序主要是获取系统的相关信息,所以用到的API函数都是返回系统信息的。 在声明API函数时,我们使用DllImport属性,从不可控代码中调用一个方法,指定了DLL的...

    ArcGIS JS API创建自定义图层实现在2D地图中渲染水波纹扩散效果.zip

    在本文中,我们将深入探讨如何使用ArcGIS JavaScript API(JS API)来创建一个自定义图层,以便在2D地图上实现水波纹扩散的动态效果。ArcGIS JS API是Esri公司提供的一个强大工具,它允许开发者在Web浏览器中构建...

    java 开发用到的 API

    在Java开发中,API(应用程序编程接口)起着至关重要的作用。它是一组预先定义的函数、类、接口和常量,允许开发者构建复杂的应用程序,而无需从零开始编写所有基础代码。以下是对给定标题和描述中涉及的一些关键API...

    开发者们可能用到的一些公开 Api 集合,很有用哦.zip

    以下是对"开发者们可能用到的一些公开Api集合,很有用哦.zip"这个压缩包内容的详细说明: 1. **什么是API**: API是一组预定义的函数、协议和工具,用于构建软件应用。它们提供了一种标准方法,让开发者可以使用...

    face-recognition-javascript-webcam-faceapi-main.zip

    JavaScript作为前端开发的主要语言,它的人脸识别能力得益于各种开源库,比如这个项目可能用到的Face API,这是一个强大的JavaScript库,能够处理图像处理和机器学习任务,尤其在人脸检测和识别方面表现出色。...

    开发BS软件中常用到 JavaScript 代码

    开发BS软件中常用到 JavaScript 代码,开发BS软件中常用到 JavaScript 代码,开发BS软件中常用到 JavaScript 代码

    我学习java3D用到的资料,有api,实例,还有我的一点作品。

    我学习java3D用到的资料,有api,实例,还有我的一点作品。而且已经把csdn里面能搜到的其他的java3d的资料也放进去了。 这里是目录,不过不全,我打包了很多东西, java3d教程.zip Java3D+编程实践——网络上的三维...

    Mouse API Mouse APIMouse APIMouse API

    Mouse API Mouse API Mouse API Mouse API Mouse API Mouse API Mouse API

    金蝶云星空_新版WebAPI资料包

    金蝶云星空_新版WebAPI资料包,金蝶插件开发用,开发合集,本人常用,需要用到的伙伴拿走。金蝶产品系列开发,对接第三方系统用!!!

    WindowsCE,Mobile用到的RAPI和dccManSink接口

    WindowsCE,Mobile用到的RAPI和dccManSink接口. 有例子等. 有了这个可以做很多事情.可以感知WCE,WM设备的插拔等各种事件.可以操作嵌入式设备. 可以制作PC上的安装文件,把文件安装到设备上等等.

    一个简单有趣的js消消乐小游戏,七夕情人节表白利器,实现简单,用到了html、css、JavaScript技术(源码)

    一个简单有趣的js消消乐小游戏,七夕情人节表白利器,实现简单,用到了html、css、JavaScript技术(源码) 一个简单有趣的js消消乐小游戏,七夕情人节表白利器,实现简单,用到了html、css、JavaScript技术(源码) ...

    API html

    标签“源码”提示我们可能涉及到代码示例或者对代码的分析,而“工具”可能指的是开发者在构建这些API时可能会用到的辅助工具,比如浏览器的开发者工具、代码编辑器等。 在压缩包文件名称列表中,“DHTML.chm”是一...

    SIP需要用到的四个包中的jain-sip-api-1.2.1.4.jar

    SIP需要用到的四个包:concurrent-1.3.4.jar,jain-sip-api-1.2.1.4.jar,jain-sip-ri-1.2.295.jar,log4j-1.2.8.jar

    QT编写的一个简单上位机 qt webengine+串口通信+百度地图API

    这个项目是利用QT创建的一个简单的上位机程序,集成了三个关键功能:QT WebEngine、串口通信以及百度地图API。 首先,QT WebEngine模块是QT框架的一部分,它允许开发者在应用程序中嵌入Web内容。WebEngine基于...

Global site tag (gtag.js) - Google Analytics