Web APIs

Frontend SELF PL
Poziom 46 , Lekcja 2
Dostępny

7.1 Geolocation API

Web APIs (Web Application Programming Interfaces) oferują olbrzymie możliwości interakcji aplikacji webowych z funkcjonalnością przeglądarki i urządzenia użytkownika. Przyjrzyjmy się niektórym z tych API, w tym Geolocation i Notifications, oraz jak z nich korzystać.

Geolocation API pozwala aplikacji webowej na ustalenie geograficznej lokalizacji urządzenia użytkownika. Może to być przydatne w różnych aplikacjach, takich jak mapy, nawigacja i geotargetowanie.

Prośba o zgodę na dostęp do lokalizacji

Aby używać Geolocation API, aplikacja webowa musi poprosić użytkownika o zgodę na dostęp do jego lokalizacji. Robi się to za pomocą metody navigator.geolocation.getCurrentPosition().

Przykład użycia 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, // Wysoka dokładność
            timeout: 5000, // Czas oczekiwania na odpowiedź (ms)
            maximumAge: 0 // Maksymalny czas, przez który można używać zbuforowanych danych (ms)
          }
        );
      } else {
        console.log('Geolocation is not supported by this browser.');
      }
    
  

Śledzenie lokalizacji

Metoda navigator.geolocation.watchPosition() pozwala śledzić zmiany lokalizacji użytkownika.

Przykład śledzenia lokalizacji:

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
          }
        );
      }

      // Wstrzymanie śledzenia lokalizacji
      function stopTracking() {
        if (watchId) {
          navigator.geolocation.clearWatch(watchId);
        }
      }
    
  

7.2 Notifications API

Notifications API pozwala aplikacji webowej na wyświetlanie powiadomień w systemie użytkownika. Jest to przydatne do przyciągnięcia uwagi użytkownika na ważne zdarzenia, nawet jeśli karta przeglądarki jest nieaktywna.

Prośba o zgodę na wysyłanie powiadomień

Aby używać Notifications API, aplikacja webowa musi poprosić użytkownika o zgodę na wysyłanie powiadomień.

Przykład prośby o zgodę:

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.');
      }
    
  

Wysyłanie powiadomień

Po uzyskaniu zgody można wysyłać powiadomienia za pomocą konstruktora Notification

Przykład wysyłania powiadomienia:

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);

        // Obsługa kliknięcia na powiadomienie
        notification.onclick = (event) => {
          event.preventDefault(); // Zapobiega domyślnemu przejściu
          window.open(notification.data.url, '_blank');
        };
      }
    
  

7.3 Inne przydatne Web API

1. DeviceOrientation API

DeviceOrientation API pozwala na uzyskanie danych o położeniu urządzenia w przestrzeni.

Przykład użycia 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 dostarcza informacji o stanie baterii urządzenia.

Przykład użycia 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 pozwala na przełączanie strony webowej w tryb pełnoekranowy.

Przykład użycia Fullscreen API:

JavaScript
    
      const element = document.documentElement; // Cały dokument

      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);
    
  
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION