リッチ通知 API を使用すると、テンプレートを使用して通知を作成し、ユーザーのシステムトレイにその通知を表示できます。
表示形式
リッチ通知には、基本、画像、リスト、進行状況の 4 種類があります。すべての通知には、タイトル、メッセージ、通知メッセージの左側に表示される小さなアイコンと、薄い色のフォントで 3 番目のテキスト フィールドとして表示される contextMessage フィールドが含まれます。
基本的な画像:
リスト通知には、任意の数のリストアイテムが表示されます。
画像通知には画像プレビューが含まれます。
進行状況の通知には、進行状況バーが表示されます。
オーディエンスの行動
ChromeOS では、通知はユーザーのシステムトレイに表示され、ユーザーが通知を閉じるまでシステムトレイに残ります。システムトレイには、すべての新しい通知の数が表示されます。システムトレイに通知が表示されると、カウントはゼロにリセットされます。
通知には、-2 ~ 2 の優先度を割り当てることができます。0 未満の優先度は ChromeOS 通知センターに表示され、他のプラットフォームではエラーが発生します。デフォルトの優先度は 0 です。 優先度が 0 より大きいほど持続時間が長くなり、システムトレイには優先度の高い通知が表示されます。
すべての通知タイプには、情報の表示に加えて、最大 2 つのアクション アイテムを含めることができます。ユーザーがアクション アイテムをクリックすると、アプリは適切なアクションで応答できます。たとえば、ユーザーが [返信] をクリックすると、メールアプリが開き、ユーザーは返信を完了できます。
開発方法
この API を使用するには、notifications.create メソッドを呼び出し、options
パラメータで通知の詳細を渡します。
chrome.notifications.create(id, options, creationCallback);
notifications.NotificationOptions には、利用可能な通知の詳細と表示方法を定義する notifications.TemplateType を含める必要があります。
基本的な通知を作成する
すべてのテンプレート タイプ(basic
、image
、list
、progress
)には、通知の title
と message
、通知メッセージの左側に表示される小さなアイコンへのリンクである iconUrl
を含める必要があります。
以下に、basic
テンプレートの例を示します。
var opt = { type: "basic", title: "Primary Title", message: "Primary message to display", iconUrl: "url_to_small_icon" }
画像通知の作成
image
テンプレート タイプには imageUrl
も含まれています。これは、通知内でプレビューされる画像へのリンクです。
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
をリスト形式で表示します。
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 の進行状況バーを表示します。
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.
}
イベントページ内にイベント リスナーとハンドラを含めると、アプリや拡張機能が実行されていなくても通知がポップアップ表示されるようになります。