アクションとは、ユーザーが拡張機能のアクション アイコンと呼ばれるツールバー アイコンをクリックしたときに発生する動作のことです。アクションは、Action API を使用して拡張機能の機能を呼び出すか、ポップアップを開きます。このページでは、拡張機能の機能を呼び出す方法について説明します。ポップアップを使用するには、ポップアップを追加するをご覧ください。
アクションを登録する
chrome.action API を使用するには、拡張機能の manifest ファイルに "action" キーを追加します。このフィールドの省略可能なプロパティの詳細については、マニフェスト セクションの chrome.action API リファレンスをご覧ください。
manifest.json:
{
"name": "My Awesome action Extension",
...
"action": {
...
}
...
}
アクションに応答する
ユーザーがアクション アイコンをクリックしたときに onClicked ハンドラ を登録します。manifest.json ファイルにポップアップが登録されている場合、このイベントはトリガーされません。
service-worker.js:
chrome.action.onClicked.addListener((tab) => {
chrome.action.setTitle({
tabId: tab.id,
title: `You are on tab: ${tab.id}`});
});
条件付きでアクションを有効にする
chrome.declarativeContent API を使用すると、ページ URL に基づいて、または CSS セレクタがページの要素と一致した場合に、拡張機能のアクション アイコンを有効にできます。拡張機能のアクション アイコンが無効になっている場合、アイコンはグレー表示になります。ユーザーが無効なアイコンをクリックすると、拡張機能のコンテキスト メニューが表示されます。
アクション バッジ
バッジは、拡張機能の状態や、ユーザーがアクションを必要としていることを示すために、アクション アイコンの上に配置される書式設定されたテキストです。たとえば、Drink Water サンプルでは、アラームが正常に設定されたことを示す "ON" というバッジが表示され、拡張機能がアイドル状態の場合は何も表示されません。バッジには最大 4 文字を含めることができます。
バッジのテキストを設定するには chrome.action.setBadgeText() を呼び出し、背景色を設定するには chrome.action.setBadgeBackgroundColor() を呼び出します。
service-worker.js:
chrome.action.setBadgeText({text: 'ON'});
chrome.action.setBadgeBackgroundColor({color: '#4688F1'});
ツールチップ
ツールチップは、manifest.json ファイルの "action" キーの下にある "default_title" フィールドに登録します。
manifest.json:
{
"name": "Tab Flipper",
...
"action": {
"default_title": "Press Ctrl(Win)/Command(Mac)+Shift+Right/Left to flip tabs"
}
...
}
action.setTitle() を呼び出して、ツールチップを設定または更新することもできます。ツールチップが設定されていない場合は、拡張機能の名前が表示されます。