Web APIs

Frontend SELF VI
Mức độ , Bài học
Có sẵn

7.1 Geolocation API

Web APIs (Web Application Programming Interfaces) cung cấp khả năng tương tác mạnh mẽ cho các ứng dụng web với chức năng của trình duyệt và thiết bị của người dùng. Hãy cùng xem xét một số API này, bao gồm GeolocationNotifications, cùng cách sử dụng chúng.

Geolocation API cho phép ứng dụng web nhận thông tin vị trí địa lý của thiết bị người dùng. Điều này có thể hữu ích cho các ứng dụng như bản đồ, điều hướng và định vị địa lý.

Yêu cầu quyền truy cập vị trí

Để sử dụng Geolocation API, ứng dụng web phải yêu cầu người dùng cho phép truy cập vị trí của họ. Điều này được thực hiện thông qua phương thức navigator.geolocation.getCurrentPosition().

Ví dụ sử dụng 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('Lỗi khi lấy thông tin địa lý:', error);
          },
          {
            enableHighAccuracy: true, // Độ chính xác cao
            timeout: 5000, // Thời gian chờ phản hồi (ms)
            maximumAge: 0 // Thời gian tối đa có thể sử dụng dữ liệu được lưu trong bộ nhớ đệm (ms)
          }
        );
      } else {
        console.log('Geolocation không được hỗ trợ bởi trình duyệt này.');
      }
    
  

Theo dõi vị trí

Phương thức navigator.geolocation.watchPosition() cho phép theo dõi sự thay đổi vị trí của người dùng.

Ví dụ theo dõi vị trí:

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('Lỗi khi lấy thông tin địa lý:', error);
          },
          {
            enableHighAccuracy: true,
            timeout: 5000,
            maximumAge: 0
          }
        );
      }

      // Dừng theo dõi vị trí
      function stopTracking() {
        if (watchId) {
          navigator.geolocation.clearWatch(watchId);
        }
      }
    
  

7.2 Notifications API

Notifications API cho phép ứng dụng web hiển thị thông báo trên hệ thống của người dùng. Điều này hữu ích để thu hút sự chú ý của người dùng tới các sự kiện quan trọng, ngay cả khi tab trình duyệt không hoạt động.

Yêu cầu quyền gửi thông báo

Để sử dụng Notifications API, ứng dụng web phải yêu cầu người dùng cho phép gửi thông báo.

Ví dụ yêu cầu quyền:

JavaScript
    
      if ('Notification' in window) {
        Notification.requestPermission().then((permission) => {
          if (permission === 'granted') {
            console.log('Quyền thông báo đã được cấp.');
          } else {
            console.log('Quyền thông báo đã bị từ chối.');
          }
        });
      } else {
        console.log('Thông báo không được hỗ trợ bởi trình duyệt này.');
      }
    
  

Gửi thông báo

Sau khi có quyền, có thể gửi thông báo bằng cách sử dụng cấu trúc Notification

Ví dụ gửi thông báo:

JavaScript
    
      if (Notification.permission === 'granted') {
        const options = {
          body: 'Đây là nội dung thông báo',
          icon: 'icon.png',
          data: { url: 'https://example.com' }
        };
        const notification = new Notification('Xin chào, thế giới!', options);

        // Xử lý sự kiện khi nhấp vào thông báo
        notification.onclick = (event) => {
          event.preventDefault(); // Ngăn chặn chuyển hướng mặc định
          window.open(notification.data.url, '_blank');
        };
      }
    
  

7.3 Các Web API hữu ích khác

1. DeviceOrientation API

DeviceOrientation API cho phép nhận dữ liệu về vị trí của thiết bị trong không gian.

Ví dụ sử dụng 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 cung cấp thông tin về trạng thái pin của thiết bị.

Ví dụ sử dụng Battery Status API:

JavaScript
    
      navigator.getBattery().then((battery) => {
        console.log(`Mức pin: ${battery.level * 100}%`);
        console.log(`Đang sạc pin: ${battery.charging}`);

        battery.addEventListener('levelchange', () => {
          console.log(`Mức pin thay đổi: ${battery.level * 100}%`);
        });

        battery.addEventListener('chargingchange', () => {
          console.log(`Trạng thái sạc pin thay đổi: ${battery.charging}`);
        });
      });
    
  

3. Fullscreen API

Fullscreen API cho phép chuyển đổi trang web sang chế độ toàn màn hình.

Ví dụ sử dụng Fullscreen API:

JavaScript
    
      const element = document.documentElement; // Toàn bộ tài liệu

      function toggleFullScreen() {
        if (!document.fullscreenElement) {
          element.requestFullscreen().catch((err) => {
            console.error(`Lỗi khi cố gắng bật chế độ toàn màn hình: ${err.message}`);
          });
        } else {
          document.exitFullscreen();
        }
      }

      document.getElementById('fullscreenButton').addEventListener('click', toggleFullScreen);
    
  
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION