Web APIs

Модуль 1: Web Core
23 уровень , 6 лекция
Открыта

7.1 Geolocation API

Web APIs (Web Application Programming Interfaces) предоставляют серьезные возможности для взаимодействия веб-приложений с функциональностью браузера и устройства пользователя. Давайте рассмотрим некоторые из этих API, включая Geolocation и Notifications, а также их использование.

Geolocation API позволяет веб-приложению получать географическое положение устройства пользователя. Это может быть полезно для различных приложений, таких как карты, навигация и геотаргетинг.

Запрос разрешения на доступ к местоположению

Чтобы использовать Geolocation API, веб-приложение должно запросить у пользователя разрешение на доступ к его местоположению. Это делается с помощью метода navigator.geolocation.getCurrentPosition().

Пример использования Geolocation API:

JavaScript
    
      if ('geolocation' in navigator) {
        navigator.geolocation.getCurrentPosition(
          (position) => {
            const { latitude, longitude } = position.coords;
            console.log(`Latitude: ${latitude}, Longitude: ${longitude}`);
          },
          (error) => {
            console.error('Error getting geolocation:', error);
          },
          {
            enableHighAccuracy: true, // Высокая точность
            timeout: 5000, // Таймаут ожидания ответа (мс)
            maximumAge: 0 // Максимальное время, в течение которого можно использовать кэшированные данные (мс)
          }
        );
      } else {
        console.log('Geolocation is not supported by this browser.');
      }
    
  

Отслеживание местоположения

Метод navigator.geolocation.watchPosition() позволяет отслеживать изменения местоположения пользователя.

Пример отслеживания местоположения:

JavaScript
    
      let watchId;

      if ('geolocation' in navigator) {
        watchId = navigator.geolocation.watchPosition(
          (position) => {
            const { latitude, longitude } = position.coords;
            console.log(`Latitude: ${latitude}, Longitude: ${longitude}`);
          },
          (error) => {
            console.error('Error getting geolocation:', error);
          },
          {
            enableHighAccuracy: true,
            timeout: 5000,
            maximumAge: 0
          }
        );
      }

      // Остановка отслеживания местоположения
      function stopTracking() {
        if (watchId) {
          navigator.geolocation.clearWatch(watchId);
        }
      }
    
  

7.2 Notifications API

Notifications API позволяет веб-приложению отображать уведомления в системе пользователя. Это полезно для привлечения внимания пользователя к важным событиям, даже если вкладка браузера не активна.

Запрос разрешения на отправку уведомлений

Чтобы использовать Notifications API, веб-приложение должно запросить у пользователя разрешение на отправку уведомлений.

Пример запроса разрешения:

JavaScript
    
      if ('Notification' in window) {
        Notification.requestPermission().then((permission) => {
          if (permission === 'granted') {
            console.log('Notification permission granted.');
          } else {
            console.log('Notification permission denied.');
          }
        });
      } else {
        console.log('Notifications are not supported by this browser.');
      }
    
  

Отправка уведомлений

После получения разрешения можно отправлять уведомления с помощью конструктора Notification

Пример отправки уведомления:

JavaScript
    
      if (Notification.permission === 'granted') {
        const options = {
          body: 'This is a notification body',
          icon: 'icon.png',
          data: { url: 'https://example.com' }
        };
        const notification = new Notification('Hello, world!', options);

        // Обработка клика на уведомление
        notification.onclick = (event) => {
          event.preventDefault(); // Предотвращает переход по умолчанию
          window.open(notification.data.url, '_blank');
        };
      }
    
  

7.3 Другие полезные Web API

1. DeviceOrientation API

DeviceOrientation API позволяет получать данные о положении устройства в пространстве.

Пример использования DeviceOrientation API:

JavaScript
    
      window.addEventListener('deviceorientation', (event) => {
        console.log(`Alpha: ${event.alpha}, Beta: ${event.beta}, Gamma: ${event.gamma}`);
      });
    
  

2. Battery Status API

Battery Status API предоставляет информацию о состоянии батареи устройства.

Пример использования Battery Status API:

JavaScript
    
      navigator.getBattery().then((battery) => {
        console.log(`Battery level: ${battery.level * 100}%`);
        console.log(`Battery charging: ${battery.charging}`);

        battery.addEventListener('levelchange', () => {
          console.log(`Battery level changed: ${battery.level * 100}%`);
        });

        battery.addEventListener('chargingchange', () => {
          console.log(`Battery charging state changed: ${battery.charging}`);
        });
      });
    
  

3. Fullscreen API

Fullscreen API позволяет переключать веб-страницу в полноэкранный режим.

Пример использования Fullscreen API:

JavaScript
    
      const element = document.documentElement; // Весь документ

      function toggleFullScreen() {
        if (!document.fullscreenElement) {
          element.requestFullscreen().catch((err) => {
            console.error(`Error attempting to enable full-screen mode: ${err.message}`);
          });
        } else {
          document.exitFullscreen();
        }
      }

      document.getElementById('fullscreenButton').addEventListener('click', toggleFullScreen);
    
  
1
Задача
Модуль 1: Web Core, 23 уровень, 6 лекция
Недоступна
Местоположение пользователя
Местоположение пользователя
1
Задача
Модуль 1: Web Core, 23 уровень, 6 лекция
Недоступна
Состояние батареи
Состояние батареи
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ