ホームページ

ホームページは、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.homepageTriggeraddOns.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)が呼び出されると、呼び出しコンテキストのデータを含むイベント オブジェクトが渡されます。

ホームページ イベント オブジェクトには、ウィジェットやコンテキスト情報は含まれません。渡される情報は、次の一般的なイベント オブジェクト フィールドに制限されます。

詳しくは、イベント オブジェクトをご覧ください。

コンテキストのないその他のカード

アドオン UI には、ホームページではない追加のコンテキストのないカードを含めることができます。たとえば、ユーザーがアドオン設定を調整できる [設定] カードを開くボタンがホームページにある場合があります(こうした設定はほとんどの場合、文脈から独立しているため、コンテキストとは無関係です)。

コンテキストのないカードは他のカードと同様に作成されます。唯一の違いは、カードが生成または表示するアクションまたはイベントのみです。カード間の遷移を作成する方法については、ナビゲーション メソッドをご覧ください。