--- title: Notification slug: Web/API/Notification tags: - API - Interface - Notifications - Reference - インターフェイス translation_of: Web/API/Notification ---

{{APIRef("Web Notifications")}}{{AvailableInWorkers}}{{securecontext_header}}

NotificationNotifications API のインターフェイスで、ユーザーへのデスクトップ通知の設定と表示に使われます。これらの通知の表示方法や機能はプラットフォームによって異なりますが、一般にユーザーに対して非同期に情報を提供する方法を提供します。

コンストラクター

{{domxref("Notification.Notification", "Notification()")}}
Notification オブジェクトの新しいインスタンスを生成します。

プロパティ

静的プロパティ

これらのプロパティは Notification オブジェクト自身のみで利用することができます。

{{domxref("Notification.permission")}} {{readonlyinline}}
文字列で、通知の表示についての現在の権限を表します。取りうる値は次の通りです。
{{domxref("Notification.maxActions")}} {{readonlyinline}}

インスタンスプロパティ

これらのプロパティは Notification オブジェクトのインスタンスでのみ使用可能です。

{{domxref("Notification.actions")}} {{readonlyinline}}
コンストラクターの options 引数で指定された、通知のアクションの配列です。
{{domxref("Notification.badge")}} {{readonlyinline}}
通知自体を表示する空間が充分にない場合に通知を表す画像の URL です。
{{domxref("Notification.body")}} {{readonlyinline}}
コンストラクターの options 引数で指定された、通知の本文文字列です。
{{domxref("Notification.data")}} {{readonlyinline}}
通知のデータの構造化されたクローンを返します。
{{domxref("Notification.dir")}} {{readonlyinline}}
コンストラクターの options 引数で指定された、通知の書字方向です。
{{domxref("Notification.lang")}} {{readonlyinline}}
コンストラクターの options 引数で指定された、通知の言語コードです。
{{domxref("Notification.tag")}} {{readonlyinline}}
コンストラクターの options 引数で指定された、通知の ID です。
{{domxref("Notification.icon")}} {{readonlyinline}}
コンストラクターの options 引数で指定された、通知のアイコンの画像 URL です。
{{domxref("Notification.image")}} {{readonlyinline}}
コンストラクターの options 引数で指定された、通知の一部として表示される画像の URL です。
{{domxref("Notification.renotify")}} {{readonlyinline}}
古い通知が新しい通知に置き換えられた後、ユーザーに通知するかどうかを指定します。
{{domxref("Notification.requireInteraction")}} {{readonlyinline}}
{{jsxref("Boolean")}} で、ユーザーがクリックするか閉じるかするまで、通知が自動的に閉じずに残るべきであることを示します。
{{domxref("Notification.silent")}} {{readonlyinline}}
静かに通知をするかどうかを明示します。つまり、デバイスの設定に関係なく、通知の際に無音やバイブレーションさせない状態を設定できます。
{{domxref("Notification.timestamp")}} {{readonlyinline}}
通知が生成されたとき、または適用されるとき (過去、現在、未来) の時刻を示します。
{{domxref("Notification.title")}} {{readonlyinline}}
コンストラクターの第1引数で指定された通知のタイトルです。
{{domxref("Notification.vibrate")}} {{readonlyinline}}
バイブレーションハードウェアを持つ端末のためのバイブレーションパターンを指定します。

イベントハンドラー

{{domxref("Notification.onclick")}}
{{domxref("Element/click_event", "click")}} イベントのハンドラーです。ユーザーが通知をクリックするたびに起動されます。
{{domxref("Notification.onclose")}}
{{domxref("HTMLDialogElement/close_event", "close")}} イベントのハンドラーです。ユーザーが通知を閉じたときに起動されます。
{{domxref("Notification.onerror")}}
{{domxref("HTMLElement/error_event", "error")}} イベントのハンドラーです。通知がエラーに遭遇するたびに起動されます。
{{domxref("Notification.onshow")}}
{{domxref("Element/show_event", "show")}} イベントのハンドラーです。通知が表示されたときに起動されます。

メソッド

静的メソッド

これらのメソッドは Notification オブジェクト自体に対してのみ使用できます。

{{domxref("Notification.requestPermission()")}}
ユーザーに通知を表示する許可をリクエストします。

インスタンスメソッド

これらのメソッドは Notification オブジェクトのインスタンス、またはprototypeからのみ使用できます。 Notification オブジェクトは {{domxref("EventTarget")}} インターフェイスも継承しています。

{{domxref("Notification.close()")}}
プログラムで通知を閉じます。

以下の基本的な 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")}}

関連情報