- Notification API
-
Notification API를 사용하려면 웹브라우저의 허가를 받아야 한다.
먼저,
Notification.permission으로 브라우저의 알림 허가 여부를 확인하여 값이 default (아직 사용자에게 알림표시 권한을 요구하지 않은 상태)라면;Notification.requestPermission()으로 허가를 요청하고, 나아가, 값이 granted (사용자에게 알림표시 권한을 요구하고, 사용자가 권한을 허용한 상태)이면;new Notification(타이틀[, {옵션객체}])로 알림표시 내용을 설정해준다: -
1.
프라미스로
Notification.requestPermission()사용하기: - 2. 알림 내용 설정 및 닫기:
const btn= document.querySelector('.push_btn')
btn.addEventListener('click', notify)
function notify() { // 푸시 알림은 먼저 브라우저의 허가를 물어야 한다!
switch(Notification.permission) { // 푸시 알림 상태값 확인
case 'default': Notification.requestPermission(); // 알림표시 허가 요청
case 'granted': new Notification('안녕?'); break; // 알림표시 내용
case 'denied': alert('알림이 거부됨!'); break; // 알림 거부
}
}
☞ 이 기능은 Web Worker에서 사용할 수 있고, 모든 지원 브라우저의 보안 컨텍스트(HTTPS)에서 사용할 수 있다!
Notification.requestPermission().then(function (result) {
console.log(result)
});
// 알림 내용 설정
let img= "/to-do-notifications/img/icon-128.png"
let text= `아! ${title} 작업 기한이 만료됐습니다 ㅡㅡ;`
let notification= new Notification("할일 목록", { body: text, icon: img });
// 알림 닫기 설정 ← 단, 대다수 브라우저에서는 약 4초 후에 자동으로 닫는다!
setTimeout(notification.close.bind(notification), 4000);
░ 새 메시지가 도착하면 사용자가 다른 애플리케이션으로 다른 일을 하고 있더라도 사용자에게 알릴 필요가 있는데, 이러한 웹 알림 메시지의 대표적인 사용 사례는 웹 기반 메일이나 같은 IRC 애플리케이션이다!