--- title: Notification slug: Web/API/notification translation_of: Web/API/Notification ---
{{APIRef("Web Notifications")}}
Notifications API의 Notification
인터페이스는 사용자에게 데스크톱 알림을 설정하고 보여주는데 사용됩니다.
{{AvailableInWorkers}}
Notification
객체 인스턴스를 생성합니다.이 속성은 Notification
객체 안에만 존재합니다.
denied
(사용자가 알림 표시를 거절), granted
(사용자가 알림 표시를 허용), default
(사용자의 선택을 알 수 없기 때문에 브라우저가 거절한 상태의 값으로 작동하게됨).이 속성은 Notification
객체의 인스턴스 안에만 존재합니다.
아래의 속성은 최신 명세에는 등록되어 있지만 아직 구현한 브라우저가 없는 속성입니다. 현재의 상태에서 변경된 사항은 없는지 계속 확인해보아야 하는 내용이고 오래된 내용이 있으면 알려주시기 바랍니다.
아래의 이벤트 핸들러는 {{anch("browser compatibility")}} 섹션에 나타난 대로 아직 지원되지만 현재 명세에 없는 내용입니다. 폐지된 것으로 생각해야 하고 앞으로 나올 브라우저에서는 작동하지 않을 수 있습니다.
이 메서드는 Notification
객체에만 존재합니다.
이 메서드는 Notification
객체의 인스턴스나 그 prototype
에만 존재합니다. Notification
객체는 또한 {{domxref("EventTarget")}} 인터페이스를 상속 받습니다.
다음과 같은 기본 HTML이 있을 때:
<button onclick="notifyMe()">Notify me!</button>
다음과 같이 알림을 보낼 수 있습니다. 알림이 지원되는지 우선 확인해 볼 때 사용할 수 있는 풍부하게 완성된 예제코드입니다. 그 다음에 현재 페이지에서 알림을 보낼 수 있게 권한이 있는지를 확인하고 알림을 보내기 전에 권한이 필요하면 요청을 합니다.
function notifyMe() {
// Let's check if the browser supports notifications
if (!("Notification" in window)) {
alert("This browser does not support desktop notification");
}
// Let's check whether notification permissions have already been granted
else if (Notification.permission === "granted") {
// If it's okay let's create a notification
var notification = new Notification("Hi there!");
}
// Otherwise, we need to ask the user for permission
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
// If the user accepts, let's create a notification
if (permission === "granted") {
var notification = new Notification("Hi there!");
}
});
}
// At last, if the user has denied notifications, and you
// want to be respectful there is no need to bother them any more.
}
{{EmbedLiveSample('Example', '100%', 30)}}
많은 경우에 이렇게 장황할 필요는 없습니다. 예를 들어 Emogotchi 데모(소스코드)에서는 단순히 알림을 보내기 위해서 권한을 얻을 수 있는지와 상관없이 {{domxref("Notification.requestPermission")}}를 실행합니다(이 경우는 새로운 프로미스 기반 메서드 문법을 사용):
Notification.requestPermission().then(function(result) {
console.log(result);
});
그 다음에 알림이 필요한 때에 단순히 spawnNotification()
함수를 실행합니다. 본문과 아이콘, 제목을 인자로 넘기면 필요한 options
객체를 만들고 {{domxref("Notification.Notification","Notification()")}} 생성자를 사용해서 알림을 발생시킵니다.
function spawnNotification(theBody,theIcon,theTitle) {
var options = {
body: theBody,
icon: theIcon
}
var n = new Notification(theTitle,options);
}
Specification | Status | Comment |
---|---|---|
{{SpecName('Web Notifications')}} | {{Spec2('Web Notifications')}} | Living standard |
{{Compat("api.Notification")}}