ホームページは、1 つ以上のコンテキストのないカードを定義できる Google Workspace アドオンの新機能です。コンテキストのないカードは、ユーザーが特定のコンテキストの外にあるとき(ユーザーが Gmail の受信トレイを表示していて、メッセージまたは下書きを開いていない場合など)にユーザー インターフェースを表示するために使用されます。
ホームページを使用すると、クイック アクセス サイドパネル (Keep、カレンダー、ToDo リスト)の Google アプリと同様に、コンテキストのないコンテンツを表示できます。また、ホームページは、ユーザーが最初にアドオンを開いたときの最初の出発点にもなり、新規ユーザーにアドオンの操作方法を教えるのに便利です。
アドオンのホームページを定義するには、プロジェクト マニフェストでアドオンを指定し、homepageTrigger
関数を 1 つ以上実装します(ホームページの構成をご覧ください)。
ホームページは、アドオンが拡張するホスト アプリケーションごとに 1 つずつ、複数作成できます。カスタム ホームページを指定していないホストで使用する共通のデフォルト ホームページを 1 つ定義することもできます。
次のいずれかの条件を満たすと、アドオンのホームページが表示されます。
- アドオンを(承認後に)ホスト内で初めて開いたとき
- アドオンが開いているときにユーザーがコンテキスト コンテキストから非コンテキスト コンテキストに切り替えた場合。たとえば、カレンダーの予定の編集からメインのカレンダーへの編集などです。
- ユーザーが [戻る] ボタンを何回かクリックし、内部スタックから他のすべてのカードをポップするとき。
- コンテキストのないカードでの UI 操作によって
Navigation.popToRoot()
呼び出しが行われた場合。
ホームページの設計は必須ではありませんが、強くおすすめします。何も定義しないと、ユーザーがホームページに移動するたびに、アドオン名を含む汎用カードが使用されます。
ホームページの設定
Google Workspace アドオンは、addOns.common.homepageTrigger
フィールドを使用して、アドオン マニフェスト内のすべてのホスト アプリケーションのデフォルトのホームページ(コンテキストなし)アドオン コンテンツを構成します。
{
// ...
"addOns": {
// ...
"common": {
// ...
"homepageTrigger": {
"runFunction": "myFunction",
"enabled": true
}
}
}
}
runFunction
: Google Workspace アドオン フレームワークが呼び出してホームページのアドオンカードをレンダリングする Apps Script 関数の名前。この関数はホームページ トリガー関数です。この関数は、ホームページ UI を構成するCard
オブジェクトの配列を作成し、返す必要があります。複数のカードが返されると、ホストアプリは、ユーザーが選択できるカードヘッダーをカードリストに表示します(複数のカードを返すをご覧ください)。enabled
: このスコープでホームページ カードを有効にするかどうか。このフィールドは省略可能で、デフォルトはtrue
です。false
に設定すると、すべてのホストでホームページ カードが無効になります(そのホストでオーバーライドされない限り、以下をご覧ください)。
共通の構成に加えて、各ホスト アプリケーションの構成(addOns.gmail.homepageTrigger
、addOns.calendar.homepageTrigger
など)でもホストごとに同一の構造のオーバーライドを使用できます。
{
...
"addOns": {
...
"common": {
// By default, call 'buildHomePage' to render homepage content
// in all hosts. Since calendar.homepageTrigger below overrides
// this in Calendar and Drive and the homepageTrigger is disabled
// for Gmail, this homepage function never executes.
"homepageTrigger": { "runFunction": "buildHomePage" }
},
"calendar": {
// Show customized homepage content for Calendar only.
"homepageTrigger": { "runFunction": "buildCalendarHomepage" }
},
"drive": {
// Show customized homepage content for Drive only.
"homepageTrigger": { "runFunction": "buildDriveHomepage" }
}
"gmail": {
// Disable homepage add-on content in Gmail.
"homepageTrigger": { "enabled": false }
},
...
}
}
これは、次のマニフェストの抜粋と同等です。
{
...
"addOns": {
...
"common": { /* ... */ }, // Omitted a default homepageTrigger specification.
"calendar": {
// Show customized homepage content for Calendar only.
"homepageTrigger": { "runFunction": "myCalendarFunction" }
},
"drive": {
// Show customized homepage content for Drive only.
"homepageTrigger": { "runFunction": "myDriveFunction" }
}
"gmail": { /* ... */ },
...
}
}
homepageTrigger
セクションは必要ありません。ただし、特定のホスト プロダクトでアドオンに表示される UI は、対応するマニフェスト フィールドの有無と、関連する homepageTrigger
が存在するかどうかによって異なります。次の例は、さまざまなマニフェスト構成のホームページ UI を作成するために、どのアドオン トリガー関数が実行されるかを示します(存在する場合)。
ホームページ イベント オブジェクト
このホームページ トリガー関数(runFunction
)が呼び出されると、呼び出しコンテキストのデータを含むイベント オブジェクトが渡されます。
ホームページ イベント オブジェクトには、ウィジェットやコンテキスト情報は含まれません。渡される情報は、次の一般的なイベント オブジェクト フィールドに制限されます。
commonEventObject.clientPlatform
commonEventObject.hostApp
commonEventObject.userLocale
とcommonEventObject.userTimezone
(制限については、ユーザーの言語 / 地域とタイムゾーンにアクセスするをご覧ください)。
詳しくは、イベント オブジェクトをご覧ください。
コンテキストのないその他のカード
アドオン UI には、ホームページではない追加のコンテキストのないカードを含めることができます。たとえば、ユーザーがアドオン設定を調整できる [設定] カードを開くボタンがホームページにある場合があります(こうした設定はほとんどの場合、文脈から独立しているため、コンテキストとは無関係です)。
コンテキストのないカードは他のカードと同様に作成されます。唯一の違いは、カードが生成または表示するアクションまたはイベントのみです。カード間の遷移を作成する方法については、ナビゲーション メソッドをご覧ください。