Notifications API
Notifications API 는 웹 페이지가 일반 사용자에게 시스템 알림 표시를 제어할 수 있게 해줍니다. 이러한 알람은 최상단 브라우징 컨텍스트 뷰포트의 바깥에 위치하므로 사용자가 탭을 변경하거나 다른 앱으로 이동했을때에도 표시할 수 있습니다. 이 API 는 다양한 플랫폼에 존재하는 알림 시스템과 호환되도록 디자인되었습니다.
개념과 사용
지원되는 플랫폼에서, 시스템 알림 표시는 일반적으로 두 가지를 포함합니다. 첫째로, 사용자가 시스템 알림 표시에 대한 현재 origin 권한을 허용해야합니다. 이는 Notification.requestPermission()
메소드를 사용해 앱이나 사이트가 초기화될 때 일반적으로 완료됩니다. 다음과 같이 요청 대화상자가 나타납니다.
여기에서 사용자는 이 origin 으로부터의 알림을 허용할지, 차단할지, 이 시점에는 선택하지 않을지를 선택할 수 있습니다. 하나가 선택된후에는, 그 설정이 현재 세션에대해서 일반적으로 유지됩니다.
참고 : Firefox 44 부터 Notifications 와 Push 권한이 통합되었습니다. notifications 에대한 권한이 허용되면, push 또한 활성화됩니다.
그 다음, Notification()
생성자를 사용해 새로운 알림이 생성됩니다. title 인자를 반드시 포함해야하며, 텍스트 방향, 바디 텍스트, 표시할 아이콘, 재생할 알림 사운드 등과 같은 옵션을 지정하는 옵션 객체를 선택적으로 전달할 수 있습니다.
참고 : 이 기능은 Web Worker에서 사용할 수 있습니다.
부가적으로, Notifications API 명세는 ServiceWorker API 에 여러가지 추가 기능을 지정하여 service worker 가 알림을 발생시킬 수 있도록 허용합니다.
참고 : 여러분의 앱에서 알림을 사용하는것에 대한 자세한 내용은 Notifications API 사용하기 글에서 찾아보시기 바랍니다.
Notifications 인터페이스
Notification
-
notification 객체를 정의합니다.
Service worker 추가 기능
ServiceWorkerRegistration
-
알림 표시 제어를 위한
ServiceWorkerRegistration.showNotification()
와ServiceWorkerRegistration.getNotifications()
메소드를 포함합니다. ServiceWorkerGlobalScope
-
알림이 클릭됐을 때 커스텀 함수를 실행하기 위한
ServiceWorkerGlobalScope.onnotificationclick
핸들러를 포함합니다. NotificationEvent
-
ExtendableEvent
를 기반으로한 이벤트 객체의 특정 타입입니다. 발생한 알림을 나타냅니다.
명세
Specification |
---|
Notifications API Standard |
브라우저 호환성
api.Notification
BCD tables only load in the browser
api.ServiceWorkerRegistration.showNotification
BCD tables only load in the browser
api.ServiceWorkerRegistration.getNotifications
BCD tables only load in the browser