Pole wyboru

Widżet SelectionInput zawiera zestaw elementów do wyboru, takich jak pola wyboru, przyciski, przełączniki i menu. Możesz używać tego widżetu do zbierania zdefiniowanych przez użytkownika danych, które są ustandaryzowane. Aby zbierać niezdefiniowane dane od użytkowników, użyj widżetu TextInput.

Widżet SelectionInput obsługuje sugestie, które ułatwiają wprowadzanie jednolitych danych, a także działania wykonywane w momencie zmiany, czyli zmiany w polu Actions wykonywanej w momencie, gdy zmiana zajdzie w polu wprowadzania wyboru, na przykład podczas wybierania lub odznaczania elementu przez użytkownika.

Aplikacje Google Chat mogą odbierać i przetwarzać wartość wybranych elementów podczas zdarzeń wejściowych w formularzu. Szczegółowe informacje o korzystaniu z danych wejściowych formularza znajdziesz w artykule Odbieranie danych formularza.

Przykłady

Ta sekcja zawiera przykłady kart, które korzystają z widżetu SelectionInput. W przykładach użyto różnych rodzajów danych wejściowych sekcji:

Przykład 1: pola wyboru

Następujący obraz przedstawia okno dialogowe z prośbą o określenie, czy kontakt jest zawodowy czy osobisty, używając widżetu SelectionInput z polami wyboru:

Okno zawierające widżet do wyboru pól wyboru.
Ilustracja 1: Okno z polem wyboru SelectionInput.

Oto kod JSON karty:

JSON

{
  "cardsV2": [
    {
      "cardId": "exampleCard",
      "card": {
        "sections": [
          {
            "header": "Add new contact",
            "widgets": [
              {
                "selectionInput": {
                  "type": "CHECK_BOX",
                  "label": "Contact type",
                  "name": "contactType",
                  "items": [
                    {
                      "text": "Work",
                      "value": "Work",
                      "selected": false
                    },
                    {
                      "text": "Personal",
                      "value": "Personal",
                      "selected": false
                    }
                  ]
                }
              },
            ]
          }
        ]
      }
    }
  ]
}

Przykład 2: przyciski

Następujący obraz przedstawia okno dialogowe z prośbą o określenie, czy kontakt jest zawodowy czy osobisty, używając widżetu SelectionInput z przyciskami:

Okno z widżetem opcji wyboru.
Ilustracja 2: Okno dialogowe z widżetem SelectionInput.

Oto kod JSON karty:

JSON

{
  "cardsV2": [
    {
      "cardId": "exampleCard",
      "card": {
        "sections": [
          {
            "header": "Add new contact",
            "widgets": [
              {
                "selectionInput": {
                  "type": "RADIO_BUTTON",
                  "label": "Contact type",
                  "name": "contactType",
                  "items": [
                    {
                      "text": "Work",
                      "value": "Work",
                      "selected": false
                    },
                    {
                      "text": "Personal",
                      "value": "Personal",
                      "selected": false
                    }
                  ]
                }
              },
            ]
          }
        ]
      }
    }
  ]
}

Przykład 3. Przełączniki

Następujący obraz przedstawia okno z prośbą o określenie, czy kontakt jest profesjonalny czy osobisty, używając widżetu SelectionInput z przełącznikami:

Okno zawierające widżet wprowadzania zmiany.
Ilustracja 3: Okno z przełącznikiem SelectionInput.

Oto kod JSON karty:

Przełączniki

{
  "cardsV2": [
    {
      "cardId": "exampleCard",
      "card": {
        "sections": [
          {
            "header": "Add new contact",
            "widgets": [
              {
                "selectionInput": {
                  "type": "SWITCH",
                  "label": "Contact type",
                  "name": "contactType",
                  "items": [
                    {
                      "text": "Work",
                      "value": "Work",
                      "selected": false
                    },
                    {
                      "text": "Personal",
                      "value": "Personal",
                      "selected": false
                    }
                  ]
                }
              },
            ]
          }
        ]
      }
    }
  ]
}

Poniższa ilustracja przedstawia okno dialogowe z prośbą o określenie, czy kontakt jest profesjonalny czy osobisty, używając widżetu SelectionInput, który korzysta z menu:

Okno z widżetem menu wyboru.
Ilustracja 4. Okno z widżetem SelectionInput w menu

Oto kod JSON karty:

{
  "cardsV2": [
    {
      "cardId": "exampleCard",
      "card": {
        "sections": [
          {
            "header": "Add new contact",
            "widgets": [
              {
                "selectionInput": {
                  "type": "DROPDOWN",
                  "label": "Contact type",
                  "name": "contactType",
                  "items": [
                    {
                      "text": "Work",
                      "value": "Work",
                      "selected": false
                    },
                    {
                      "text": "Personal",
                      "value": "Personal",
                      "selected": false
                    }
                  ]
                }
              },
            ]
          }
        ]
      }
    }
  ]
}

Reprezentacja i pola JSON

Zapis JSON
{
  "name": string,
  "label": string,
  "type": enum (SelectionType),
  "items": [
    {
      object (SelectionItem)
    }
  ],
  "onChangeAction": {
    object (Action)
  }
}
Pola
name

string

Nazwa określająca dane wejściowe wybrane w zdarzeniu wprowadzania danych z formularza.

Więcej informacji na temat pracy z danymi z formularzy znajdziesz w artykule Odbieranie danych formularza.

label

string

Tekst wyświetlany nad polem wyboru w interfejsie.

Podaj tekst, który pomoże użytkownikowi wpisać informacje, których potrzebuje Twoja aplikacja. Jeśli na przykład użytkownicy wybierają z menu opcję pilnego biletu do pracy, może ona mieć etykietę „Pilne” lub „Wybierz pilne”.

type

enum (SelectionType)

Typ elementów wyświetlanych użytkownikom w widżecie SelectionInput. Typy wyboru obsługują różne typy interakcji. Na przykład użytkownicy mogą zaznaczać co najmniej jedno pole wyboru, ale z menu mogą wybrać tylko jedną wartość.

items[]

object (SelectionItem)

Tablica elementów do wyboru. Przykładem może być tablica opcji lub pól wyboru. Obsługuje do 100 elementów.

onChangeAction

object (Action)

Jeśli wybierzesz ten warunek, formularz zostanie przesłany po zmianie wyboru. Jeśli nie podasz odpowiedzi, musisz określić osobny przycisk, który przesyła formularz.

Więcej informacji na temat pracy z danymi z formularzy znajdziesz w artykule Odbieranie danych formularza.

Typ wyboru

Wartości w polu enum
CHECK_BOX Zestaw pól wyboru. Użytkownicy mogą zaznaczyć jedno lub więcej pól wyboru.
RADIO_BUTTON Zestaw opcji. Użytkownicy mogą wybrać tylko jedną opcję.
SWITCH Zestaw przełączników. Użytkownicy mogą włączyć co najmniej 1 przełącznik.
DROPDOWN Menu. Użytkownicy mogą wybrać jeden element z menu.

Element wyboru

Zapis JSON
{
  "text": string,
  "value": string,
  "selected": boolean
}
Pola
text

string

Tekst określający lub opisujący produkt użytkownikom.

value

string

Wartość powiązana z tym elementem. Klient powinien używać go jako wartości wejściowej formularza.

Więcej informacji na temat pracy z danymi z formularzy znajdziesz w artykule Odbieranie danych formularza.

selected

boolean

Jeśli wybrano element true, wybierany jest więcej niż 1 element. Jeśli wybierzesz więcej niż jeden element dla opcji i menu rozwijanego, pierwszy wybrany element zostanie odebrany, a pozostałe zostaną zignorowane.

Czynność

Działanie opisujące zachowanie podczas przesyłania formularza. Możesz na przykład wywołać skrypt Apps Script, aby obsłużyć formularz. Jeśli działanie zostanie aktywowane, wartości formularza zostaną przesłane na serwer.

Zapis JSON
{
  "function": string,
  "parameters": [
    {
      object (ActionParameter)
    }
  ],
  "loadIndicator": enum (LoadIndicator),
  "persistValues": boolean,
  "interaction": enum (Interaction)
}
Pola
function

string

Funkcja niestandardowa, która ma być wywoływana po kliknięciu lub aktywowaniu elementu zawierającego.

Więcej informacji znajdziesz w artykule Tworzenie interaktywnych kart.

parameters[]

object (ActionParameter)

Lista parametrów działania.

loadIndicator

enum (LoadIndicator)

Określa wskaźnik wczytywania wyświetlany podczas wykonywania działania.

persistValues

boolean

Wskazuje, czy po formularzu działanie formularza pozostaje aktywne. Wartością domyślną jest false.

Jeśli pole true zawiera wartości, po wypełnieniu pola działanie pozostaje aktywne. Aby pozwolić użytkownikowi na wprowadzanie zmian podczas przetwarzania działania, ustaw LoadIndicator na NONE. W przypadku kart kart w aplikacjach Google Chat musisz też ustawić wartość ResponseType dla działania na UPDATE_MESSAGE i użyć tej samej wartości cardId z karty, która zawiera działanie.

Jeśli false, wartości formularza zostaną wyczyszczone po wywołaniu działania. Aby uniemożliwić użytkownikowi wprowadzanie zmian podczas przetwarzania działania, ustaw wartość LoadIndicator na SPINNER.

interaction

enum (Interaction)

Opcjonalnie. Wymagane przy otwieraniu okna.

Co zrobić w odpowiedzi na interakcję użytkownika, np. kliknięcie przycisku w wiadomości na karcie.

Jeśli nie określono inaczej, aplikacja reaguje w zwykły sposób, uruchamiając action, np. otwierając link lub uruchamiając funkcję.

Jeśli określisz interaction, aplikacja może reagować w specjalny sposób. Jeśli na przykład ustawisz interaction na wartość OPEN_DIALOG, aplikacja będzie mogła otwierać okno. Jeśli podasz wartość, wskaźnik ładowania się nie wyświetli.

Obsługiwane przez aplikacje do obsługi czatu, ale nie w ramach dodatków do Google Workspace. Jeśli dodatek jest określony jako dodatek, cała karta jest usuwana i nic nie jest wyświetlane w kliencie.

Parametr działania

Lista parametrów ciągu znaków, które mają zostać podane po wywołaniu metody działania. Możesz np. wybrać 3 przyciski drzemki: drzemka teraz, drzemka na dzień lub drzemkę w przyszłym tygodniu. Można użyć właściwości action method = snooze(), przekazując typ drzemki i czas drzemki na liście parametrów ciągu znaków.

Więcej informacji: CommonEventObject.

Zapis JSON
{
  "key": string,
  "value": string
}
Pola
key

string

Nazwa parametru skryptu działania.

value

string

Wartość parametru.

Wskaźnik obciążenia

Określa wskaźnik wczytywania wyświetlany podczas wykonywania działania.

Wartości w polu enum
SPINNER Wyświetla wskaźnik postępu wczytywania treści.
NONE Nic nie jest wyświetlane.

Interakcja

Opcjonalnie. Wymagane przy otwieraniu okna.

Co zrobić w odpowiedzi na interakcję użytkownika, np. kliknięcie przycisku w wiadomości na karcie.

Jeśli nie określono inaczej, aplikacja reaguje w zwykły sposób, uruchamiając action, np. otwierając link lub uruchamiając funkcję.

Jeśli określisz interaction, aplikacja może reagować w specjalny sposób. Jeśli na przykład ustawisz interaction na wartość OPEN_DIALOG, aplikacja będzie mogła otwierać okno.

Jeśli podasz wartość, wskaźnik ładowania się nie wyświetli.

Obsługiwane przez aplikacje do obsługi czatu, ale nie w ramach dodatków do Google Workspace. Jeśli dodatek jest określony jako dodatek, cała karta jest usuwana i nic nie jest wyświetlane w kliencie.

Wartości w polu enum
INTERACTION_UNSPECIFIED Wartość domyślna. action działa normalnie.
OPEN_DIALOG

Otwiera okno – interfejs użytkownika w postaci okna, który umożliwia aplikacjom Google Chat interakcję z użytkownikami.

Obsługiwane tylko przez aplikacje do obsługi czatu w odpowiedzi na kliknięcie przycisku na karcie.

Nieobsługiwane przez dodatki do Google Workspace. Jeśli dodatek jest określony jako dodatek, cała karta jest usuwana i nic nie jest wyświetlane w kliencie.