如果您是SitePoint的经常读者,或者是我的追随者,那么您会知道我写了很多有关HTML5和JavaScript API的文章。 到目前为止,我已经发表了有关API的文章,即使使用polyfill也可以立即使用。
今天,我将通过为您预览一些仍处于早期阶段的API来打破这种习惯。 为了让您了解这些API的尖端程度,请考虑几天前宣布了三分之二的API。 因此,坏消息是它们现在都无法使用 。 但是,如果您对他们的工作感兴趣,则可能需要遵循规范的制定并提供反馈。
事不宜迟,让我们开始吧!
网络警报API
Web Alarms API提供对设备警报设置的访问,该设置可以安排通知或在特定时间启动应用程序。 此API的典型用例涉及警报,日历或需要在特定时间执行操作的任何其他软件的应用程序。
从去年开始,此API是W3C工作草案。 因此,规范是成为W3C建议书的第一步。 该API通过window.navigator
对象的alarms
属性公开。 alarms
属性提供三种方法:
-
getAll()
:检索作为Alarm
对象数组添加到设备的所有警报。 -
add()
:注册一个基于Date
对象的警报并返回AlarmRequest
对象。 -
remove()
:根据唯一ID(在应用程序源中唯一remove()
删除先前添加的警报。
只是为了让您了解如何理想地调用这些方法,以下是添加警报的示例(请记住,此代码目前无法在任何浏览器中运行):
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);
};
然后,如果要删除相同的警报,可以编写:
var request = navigator.alarms.remove(alarmId);
request.onsuccess = function (e) {
alert("alarm removed");
};
request.onerror = function (e) {
alert(e.target.error.name);
};
如果您想了解有关Web Alarms API的更多信息,请查看规范 。
简报API
Presentation API的目的是使辅助显示器(例如投影仪或已连接的电视)可用于网络,并考虑使用有线(HDMI,DVI或类似技术)和无线技术(MiraCast,Chromecast,DLNA)连接的显示器,AirPlay或类似产品)。 该API的作用是允许在次要显示中显示的请求页面和演示页面之间交换消息。
请注意,规范不是W3C标准,也不在W3C标准轨道上。 该API通过window.navigator
对象的presentation
属性公开。 该属性提供了一种称为requestSession()
,以及两个事件present
和availablechange
。 requestSession()
用于在辅助屏幕上启动或恢复演示。 它返回一个会话对象,该对象代表当前演示会话的句柄。 加载由传递给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的更多信息,请查看最终报告 。
备用API
Standby API允许您在顶级浏览上下文中请求屏幕唤醒锁定。 这样可以防止设备进入省电状态(例如,关闭屏幕)。 此功能对于多个Web应用程序至关重要。 例如,假设您正在开车,并且在智能手机上使用基于Web的导航器(而非本机应用程序)。 如果您不与屏幕互动,除非设置中另外指定,否则设备的屏幕将关闭。 但是,在这种情况下,您确实希望屏幕保持唤醒状态。 这正是该API发挥作用的地方。
Standby API通过window.navigator
对象的wakeLock
属性公开。 它提供两种方法:
-
request
:使基础平台保持屏幕处于活动状态。 -
release
:释放唤醒锁,因此屏幕将不再保持唤醒状态。
这两种方法仅接受一个参数,可以是"screen"
或"system"
。 前者用于定位设备屏幕,而后者用于定位其他设备资源,例如CPU或无线电(但不用于屏幕)。
下面显示了一个示例,该示例显示了如何使用此API请求屏幕保持清醒状态:
navigator.wakeLock.request("screen").then(
function successFunction() {
// do something
},
function errorFunction() {
// do something else
}
);
为了关闭屏幕,我们可以编写以下语句:
navigator.wakeLock.release("display");
如果您想了解更多关于Standby API的信息,请查看非正式草案 。
结论
在本文中,我向您介绍了一些全新的JavaScript API。 我想再次强调一下,因为它们都处于早期阶段,所以没有浏览器支持它们。 因此,我们不能和他们一起玩。 但是,如此新奇,您就有机会跟随他们的发展,甚至为规范做出贡献。
Web开发的未来是美好的,成为它的一部分!
From: https://www.sitepoint.com/3-new-javascript-apis-may-want-follow/