ホームページは、1 つ以上のコンテキスト以外のカードを定義できる Google Workspace の新しいアドオン機能です。コンテキスト以外のカードは、ユーザーが特定のコンテキストの外にいるとき(ユーザーが Gmail の受信トレイを表示しているが、メッセージまたは下書きを開いていない場合など)にユーザー インターフェースを表示するために使用されます。
ホームページでは、クイック アクセス サイドパネル(Keep、カレンダー、ToDo リスト)の Google アプリと同様に、コンテキストのないコンテンツを表示できます。ホームページは、ユーザーが最初にアドオンを開いたときの開始点にもなります。また、新規ユーザーはアドオンの使い方を教えることができます。
アドオンのホームページは、プロジェクト マニフェストで指定し、1 つ以上の homepageTrigger
関数を実装することで設定できます(ホームページの構成を参照)。
ホームページは、アドオンが拡張するホスト アプリケーションごとに 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 には、ホームページではないその他のコンテキスト以外のカードを含めることができます。たとえば、ホームページに「設定」カードを開くボタンを設置すると、ユーザーはアドオンの設定を調整できます(こうした設定は、多くの場合、コンテキストとは無関係であるため、コンテキストとは無関係です)。
コンテキスト以外のカードは他のカードと同様に作成されます。唯一の違いは、アクションまたはイベントが生成および表示するカードです。カード間の遷移を作成する方法について詳しくは、ナビゲーション メソッドをご覧ください。