Статьи

3 новых API JavaScript, которым вы можете следовать

Если вы частый читатель SitePoint и, возможно, мой последователь, вы знаете, что я написал много статей о HTML5 и JavaScript API. До сих пор я публиковал статьи, в которых обсуждались API-интерфейсы, которые вы можете начать использовать сегодня, даже если вы используете полифилл.

Сегодня я избавлюсь от этой привычки, предоставив вам предварительный просмотр некоторых API, которые все еще находятся на очень ранней стадии. Чтобы дать вам представление о том, насколько передовыми являются эти API, рассмотрим, что 2 из 3 были анонсированы всего несколько дней назад. Из-за этого плохая новость заключается в том, что ни один из них не может быть использован прямо сейчас . Однако, если вы заинтересованы в том, что они делают, вы можете следить за разработкой спецификаций и, возможно, предоставить свой отзыв.

Без лишних слов, давайте начнем!

API веб-сигналов

Web Alarms API предоставляет доступ к настройкам тревоги устройства, которые могут запланировать уведомление или запуск приложения в определенное время. Типичный вариант использования этого API включает приложения, такие как сигналы тревоги, календари или любое другое программное обеспечение, которое должно выполнить действие в определенное время.

Начиная с прошлого года этот API является рабочим проектом W3C. Таким образом, спецификации находятся на первом этапе процесса, чтобы стать Рекомендацией W3C. Этот API предоставляется через свойство window.navigator объекта window.navigator . Свойство alarms предлагает три метода:

  • getAll() : getAll() все тревоги, добавленные на устройство, в виде массива объектов Alarm .
  • add() : регистрирует сигнал тревоги на основе объекта Date и возвращает объект AlarmRequest .
  • 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); }; 

Если вы хотите узнать больше об API Web Alarms, взгляните на спецификацию .

API представления

Цель API представления — сделать вторичные дисплеи, такие как проектор или подключенный телевизор, доступными для Интернета и учитывать дисплеи, подключенные с использованием проводных (HDMI, DVI или аналогичных) и беспроводных технологий (MiraCast, Chromecast, DLNA). AirPlay или аналогичный). Этот API-интерфейс обеспечивает обмен сообщениями между запрашивающей страницей и страницей презентации, отображаемой на дополнительном дисплее.

Обратите внимание, что эти спецификации не являются стандартом W3C и не входят в стандартную дорожку W3C Этот API предоставляется через свойство window.navigator объекта window.navigator . Свойство предоставляет один метод, называемый requestSession() , и два события present и availablechange . requestSession() используется для запуска или возобновления презентации на дополнительном экране. Он возвращает объект сеанса, который представляет дескриптор текущего сеанса презентации. Когда загружается содержимое, обозначенное URL-адресом, переданным в requestSession() , страница на экране презентации получает 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> 

Если вы хотите узнать больше об API презентаций, взгляните на итоговый отчет .

Резервный API

Standby API позволяет запрашивать блокировку экрана в контексте просмотра верхнего уровня. Это предотвращает переход устройства в состояние энергосбережения (например, выключение экрана). Эта способность имеет решающее значение для нескольких веб-приложений. Например, представьте, что вы ведете машину и используете на смартфоне веб-навигатор (а не собственное приложение). Если вы не взаимодействуете с экраном, если в настройках не указано иное, экран вашего устройства отключится. Однако в таких случаях вы хотите, чтобы ваш экран оставался активным. Именно здесь этот API вступает в игру.

Standby API предоставляется через свойство window.navigator объекта window.navigator . Он предоставляет два метода:

  • request : заставляет базовую платформу держать экран в активном состоянии.
  • release : снимает блокировку от пробуждения, поэтому экран больше не будет оставаться активным.

Оба эти метода принимают только один аргумент, который может быть "screen" или "system" . Первый используется для целевого экрана устройства, а второй — для других ресурсов устройства, таких как процессор или радио (но не экран).

Пример, который показывает, как использовать этот API для запроса экрана, чтобы не заснуть, показан ниже:

 navigator.wakeLock.request("screen").then( function successFunction() { // do something }, function errorFunction() { // do something else } ); 

Чтобы разрешить выключение экрана, мы можем написать следующее утверждение:

 navigator.wakeLock.release("display"); 

Если вы хотите узнать больше о Standby API, взгляните на неофициальный черновик .

Выводы

В этой статье я познакомил вас с некоторыми совершенно новыми API-интерфейсами JavaScript. Еще раз хочу подчеркнуть, что поскольку все они находятся на очень ранней стадии, ни один браузер не поддерживает их. Поэтому мы не можем играть с ними. Однако, будучи таким новым, у вас есть шанс следить за их развитием и даже вносить свой вклад в технические характеристики.

Будущее веб-разработки ярко, будьте частью этого!