リッチ通知 API

プラットフォームの違い: Chrome バージョン 59 では、Mac OS X での通知の表示方法が変わります。Chrome 固有の通知の代わりに、Mac OS X のネイティブ通知が表示されます。詳しくは、こちらの記事をご覧ください。

Rich Notifications API を使用すると、テンプレートを使用して通知を作成し、 次の情報が表示されます。

システム ユーザー トレイの通知

表示形式

リッチ通知には、基本、画像、リスト、進行状況の 4 つのフレーバーがあります。すべて タイトル、メッセージ、通知の左側に表示される小さなアイコンが含まれる message、contextMessage フィールドなどがあります。これは、薄い色のフォントの 3 つ目のテキスト フィールドとして表示されます。

基本的なイメージ:

基本的な通知

リスト通知には、任意の数のリストアイテムが表示されます。

リスト通知

画像通知には画像プレビューが含まれます。

画像に関する通知

進行状況の通知には進行状況バーが表示されます。

進行状況の通知

ユーザー行動

ChromeOS では、通知はユーザーのシステムトレイに表示され、 拒否されます。システムトレイには、すべての新しい通知の数が表示されます。ユーザーに 通知がすべて表示されると、カウントはゼロにリセットされます。

通知には -2 ~ 2 の優先度を割り当てることができます。優先事項 <ChromeOS では 0 と表示される 他のプラットフォームでエラーが発生する場合があります。デフォルトの優先度は 0 です。 優先事項 >時間を延長するために 0 が表示され、優先度の高い通知はより頻繁に 表示されます

すべての通知タイプには、情報を表示するだけでなく、最大 2 つのアクション アイテムを含めることができます。 ユーザーがアクション アイテムをクリックすると、アプリは適切なアクションで応答できます。たとえば ユーザーが [Reply] をクリックすると、メールアプリが開き、返信を完了できます。

通知内の操作

開発方法

この API を使用するには、notifications.create メソッドを呼び出し、 options パラメータ:

chrome.notifications.create(id, options, creationCallback);

notifications.NotificationOptions には notifications.TemplateType を含める必要があります。 は、使用可能な通知の詳細と、その詳細の表示方法を定義します。

基本的な通知を作成する

すべてのテンプレート タイプ(basicimagelistprogress)に、通知 title を含める必要があります。 messageiconUrl(ページの左側に表示される小さなアイコンへのリンク) 表示されます。

basic テンプレートの例を次に示します。

var opt = {
  type: "basic",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon"
}

画像に関する通知を作成

image テンプレート タイプには、プレビュー画像へのリンクである imageUrl も含まれています。 次のことができます。

プラットフォームの違い: Mac OS X で Chrome バージョン 59 以降を使用しているユーザーには、画像は表示されません。
var opt = {
  type: "basic",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  imageUrl: "url_to_preview_image"
}

Chrome アプリでは、厳格なコンテンツ セキュリティ ポリシーにより、これらの URL はローカル blob またはデータ URL を使用してください。画像の比率は 3:2 にします。それ以外の場合は黒の枠線 画像をフレーミングします。

リスト通知の作成

list テンプレートは、items をリスト形式で表示します。

プラットフォームの違い: Mac OS X で Chrome バージョン 59 以降のユーザーには、最初のリスト項目のみが表示されます。
var opt = {
  type: "list",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  items: [{ title: "Item1", message: "This is item 1."},
          { title: "Item2", message: "This is item 2."},
          { title: "Item3", message: "This is item 3."}]
}

進行状況の通知を作成

progress テンプレートは、現在の進行状況の範囲が 0 ~ 100 の進行状況バーを表示します。

プラットフォームの違い: Mac OS X の Chrome バージョン 59 以降では、通知のタイトルに進行状況バーがパーセント値で表示されます。
var opt = {
  type: "progress",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  progress: 42
}

イベントのリッスンと応答

すべての通知には、イベント リスナーと、ユーザーの操作に応答するイベント ハンドラを含めることができます( chrome.events).たとえば、イベントへの応答としてイベント ハンドラを作成し、 notifications.onButtonClicked イベントがあります。

イベント リスナー:

chrome.notifications.onButtonClicked.addListener(replyBtnClick);

イベント ハンドラ:

function replyBtnClick {
    //Write function to respond to user action.
}

イベントページ内にイベント リスナーとイベント ハンドラを含めると、通知が アプリや拡張機能が実行されていなくてもポップアップすることがあります。