Web APIs

Frontend SELF PT
Nível 46 , Lição 2
Disponível

7.1 Geolocation API

Web APIs (Web Application Programming Interfaces) oferecem muitas possibilidades para interação das aplicações web com a funcionalidade do navegador e do dispositivo do usuário. Vamos dar uma olhada em algumas dessas APIs, incluindo Geolocation e Notifications, e como usá-las.

A Geolocation API permite que uma aplicação web obtenha a localização geográfica do dispositivo do usuário. Isso pode ser útil para várias aplicações, como mapas, navegação e geotargeting.

Solicitação de permissão para acessar a localização

Para usar a Geolocation API, a aplicação web precisa solicitar permissão ao usuário para acessar sua localização. Isso é feito com o método navigator.geolocation.getCurrentPosition().

Exemplo de uso da 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, // Alta precisão
            timeout: 5000, // Tempo limite para resposta (ms)
            maximumAge: 0 // Tempo máximo que os dados em cache podem ser usados (ms)
          }
        );
      } else {
        console.log('Geolocation is not supported by this browser.');
      }
    
  

Rastreamento de localização

O método navigator.geolocation.watchPosition() permite rastrear mudanças na localização do usuário.

Exemplo de rastreamento de localização:

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

      // Parar o rastreamento de localização
      function stopTracking() {
        if (watchId) {
          navigator.geolocation.clearWatch(watchId);
        }
      }
    
  

7.2 Notifications API

A Notifications API permite que uma aplicação web exiba notificações no sistema do usuário. Isso é útil para atrair a atenção do usuário para eventos importantes, mesmo que a aba do navegador não esteja ativa.

Solicitação de permissão para enviar notificações

Para usar a Notifications API, a aplicação web precisa solicitar permissão do usuário para enviar notificações.

Exemplo de solicitação de permissão:

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

Enviando notificações

Depois de obter a permissão, você pode enviar notificações usando o construtor Notification

Exemplo de envio de notificação:

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

        // Tratamento de clique na notificação
        notification.onclick = (event) => {
          event.preventDefault(); // Impede a navegação padrão
          window.open(notification.data.url, '_blank');
        };
      }
    
  

7.3 Outras Web APIs úteis

1. DeviceOrientation API

A DeviceOrientation API permite obter dados sobre a orientação do dispositivo no espaço.

Exemplo de uso da DeviceOrientation API:

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

2. Battery Status API

A Battery Status API fornece informações sobre o estado da bateria do dispositivo.

Exemplo de uso da 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

A Fullscreen API permite alternar a página web para o modo de tela cheia.

Exemplo de uso da Fullscreen API:

JavaScript
    
      const element = document.documentElement; // Todo o documento

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