--- title: Notification slug: Web/API/Notification tags: - API - Interface - Notifications - Reference - インターフェイス translation_of: Web/API/Notification ---
{{APIRef("Web Notifications")}}{{AvailableInWorkers}}{{securecontext_header}}
Notification
は Notifications API のインターフェイスで、ユーザーへのデスクトップ通知の設定と表示に使われます。これらの通知の表示方法や機能はプラットフォームによって異なりますが、一般にユーザーに対して非同期に情報を提供する方法を提供します。
Notification
オブジェクトの新しいインスタンスを生成します。これらのプロパティは Notification
オブジェクト自身のみで利用することができます。
denied
— ユーザーが通知の表示を拒否した。granted
—通知が表示されることをユーザーが受け入れた。default
— ユーザーの選択が不明であるため、ブラウザーは値が denied であるかのように動作します。これらのプロパティは Notification
オブジェクトのインスタンスでのみ使用可能です。
options
引数で指定された、通知のアクションの配列です。options
引数で指定された、通知の本文文字列です。options
引数で指定された、通知の書字方向です。options
引数で指定された、通知の言語コードです。options
引数で指定された、通知の ID です。options
引数で指定された、通知のアイコンの画像 URL です。options
引数で指定された、通知の一部として表示される画像の URL です。これらのメソッドは Notification
オブジェクト自体に対してのみ使用できます。
これらのメソッドは Notification
オブジェクトのインスタンス、またはprototype
からのみ使用できます。 Notification
オブジェクトは {{domxref("EventTarget")}} インターフェイスも継承しています。
以下の基本的な HTML を想定してください。
<button onclick="notifyMe()">Notify me!</button>
以下のように通知を送信することが可能で — ここでは、通知に対応しているかどうかを最初にチェックしたい場合に使用できる、かなり冗長で完全なコードのセットを提示します。次に、通知を送信する前に、現在のオリジンに通知を送信するための許可が付与されているかどうかをチェックし、必要に応じて許可を要求します。
function notifyMe() { // ブラウザーが通知に対応しているかどうかをチェックしましょう if (!("Notification" in window)) { alert("このブラウザーはデスクトップ通知に対応していません。"); } // 通知の許可が既に得られているかどうかをチェックしましょう else if (Notification.permission === "granted") { // If it's okay let's create a notification var notification = new Notification("こんにちは!"); } // そうでなければ、ユーザーに許可を求める必要があります else if (Notification.permission !== "denied") { Notification.requestPermission().then(function (permission) { // ユーザーが許可したら、通知を作成しましょう if (permission === "granted") { var notification = new Notification("こんにちは!"); } }); } // 最後に、ユーザーが通知を拒否していて、あなたが敬意を // 払いたい場合は、これ以上相手を煩わせることはありません。 }
このページでライブ例を公開するのはやめました。 Chrome や Firefox が別オリジンの {{htmlelement("iframe")}} から要求された通知の許可をしないようになり、その他のブラウザーも従っているからです。動作する例を見る場合は、 To-do リストの例 (また、ライブで動作するアプリ) を参照してください。
注: 上記の例では、通知をユーザーの操作 (ボタンのクリック) から起動しました。ユーザーが同意していない通知でユーザーに迷惑をかけるべきではないので、これはベストプラクティスであるだけでなく、今後ブラウザーはユーザーの操作によって起動されたものではない通知の許可の要求を明示的に拒否するようになるでしょう。例えば、 Firefox はバージョン72からすでにこれを行っています。
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('Web Notifications')}} | {{Spec2('Web Notifications')}} | Living standard |
{{Compat("api.Notification")}}