프로그레시브 웹 앱에서 '내비게이터'란 무엇입니까?

'내비게이터'가 웹 앱을 점진적으로 향상시키는 방법

웹 앱에서 '내비게이터'란 무엇입니까?

지원되는 경우 웹 애플리케이션의 전역 "창" 개체는 "내비게이터" 개체에 대한 액세스를 제공합니다. "내비게이터"에는 앱에 대한 잠재적으로 많은 정보가 포함되어 있으며 구독할 특정 이벤트에 대한 액세스 권한을 제공할 수 있습니다. 거의 네이티브처럼 느껴질 수 있는 진정으로 현대적인 웹 앱을 작성하는 데 도움이 됩니다.

"내비게이터"의 인스턴스는 웹 앱(브라우저)을 실행하는 애플리케이션인 사용자 에이전트에 직접 연결됩니다.

"내비게이터"가 앱을 점진적으로 향상시키는 방법

"점진적으로 향상"은 "내비게이터"가 앱을 호스팅하는 브라우저를 기반으로 특정 기능 세트를 제공함을 의미합니다. 예를 들어 Google의 Chrome은 Google이 지속적으로 프로그레시브 웹 앱의 경계를 넓히기 때문에 불안정한 기능이라도 가장 많은 기능을 구현했습니다.

MDN 문서의 모든 예에서 볼 수 있듯이 액세스하려는 변수나 함수가 "내비게이터"에서 실제로 사용 가능한지 확인해야 합니다.

// Just a simple example of how
// to check for availability 
// of features.


function checkNetwork(){
  if("connection" in navigator){
    // Now it's safe to use 'navigator.connection'.
    // 👉 https://developer.mozilla.org/en-US/docs/Web/API/Navigator/connection
  }
  
  // Alternative if you're using:
  // 'navigator?.connection'
}

"내비게이터"를 통해 앱에서 사용할 수 있는 몇 가지 정보:

  • CPU 코어 수
  • 자세한 네트워크 정보
  • 앱을 실행하는 기기의 배터리 상태(예: 태블릿 또는 스마트폰)
  • 현재 위치 정보 읽기 및 추적
  • 콘텐츠 공유를 위해 호스트의 기본 메뉴 사용
  • 미디어 세션 제어

바로 이 PWA에서 이러한 기능 중 일부가 실제로 작동하고 있는 것을 볼 수 있습니다. 페이지 끝까지 아래로 스크롤하면 사용 가능한 하드웨어 메트릭 구현 중 일부(예: CPU 코어 수)를 볼 수 있습니다.

"네비게이터"로 작업

이 기사는 프로그레시브 웹 앱을 위한 "내비게이터"와 함께 제공되는 가능성에 대해 매우 간략하게 소개하는 것을 목표로 합니다. MDN에는 사용 가능한 각 기능에 대한 문서뿐만 아니라 훌륭한 개요 페이지가 있습니다.

Google Chrome의 경우 Chromium 브라우저의 기능 플래그 뒤에만 사용할 수 있는 실험적인 새 기능을 구현하는 "Project Fugu"도 있습니다.