Karta
Karty obsługują zdefiniowany układ, interaktywne elementy interfejsu, takie jak przyciski, oraz rich media, np. obrazy. Korzystaj z kart, aby przedstawiać szczegółowe informacje, zbierać informacje od użytkowników i zachęcać ich do dalszego działania.
W Google Chat karty pojawiają się w kilku miejscach:
- Samodzielne wiadomości.
- Obok SMS-a, tuż pod SMS-em.
- Jako okno.
Ten przykładowy kod JSON tworzy „wizytówkę”, która obejmuje:
- Nagłówek z nazwą kontaktu, tytułem stanowiska i zdjęciem awatara.
- Sekcja zawierająca informacje kontaktowe, w tym sformatowany tekst.
- Przyciski, które użytkownicy mogą kliknąć, aby udostępnić kontakt, albo wyświetlić więcej lub mniej informacji.
{
"cardsV2": [
{
"cardId": "unique-card-id",
"card": {
"header": {
"title": "Sasha",
"subtitle": "Software Engineer",
"imageUrl":
"https://developers.google.com/chat/images/quickstart-app-avatar.png",
"imageType": "CIRCLE",
"imageAltText": "Avatar for Sasha",
},
"sections": [
{
"header": "Contact Info",
"collapsible": true,
"uncollapsibleWidgetsCount": 1,
"widgets": [
{
"decoratedText": {
"startIcon": {
"knownIcon": "EMAIL",
},
"text": "sasha@example.com",
}
},
{
"decoratedText": {
"startIcon": {
"knownIcon": "PERSON",
},
"text": "<font color=\"#80e27e\">Online</font>",
},
},
{
"decoratedText": {
"startIcon": {
"knownIcon": "PHONE",
},
"text": "+1 (555) 555-1234",
}
},
{
"buttonList": {
"buttons": [
{
"text": "Share",
"onClick": {
"openLink": {
"url": "https://example.com/share",
}
}
},
{
"text": "Edit",
"onClick": {
"action": {
"function": "goToView",
"parameters": [
{
"key": "viewType",
"value": "EDIT",
}
],
}
}
},
],
}
},
],
},
],
},
}
],
}
Zapis JSON |
---|
{ "header": { object ( |
Pola | |
---|---|
header
|
Nagłówek karty. Nagłówek zwykle zawiera obraz na początku i tytuł. Nagłówki zawsze wyświetlają się u góry karty. |
sections[]
|
Zawiera kolekcję widżetów. Każda sekcja ma własny, opcjonalny nagłówek. Sekcje są wizualnie rozdzielone przecinkami. |
cardActions[]
|
Działania na karcie. Czynności są dodawane do menu paska narzędzi karty.
Karty aplikacji Google Chat nie mają paska narzędzi, dlatego
Na przykład poniższy kod JSON tworzy menu działania karty z opcjami
|
name
|
Nazwa karty. Używane jako identyfikator karty w Nawigacji po karcie. Aplikacje do obsługi czatu nie obsługują nawigacji na kartach, dlatego to pole jest ignorowane. |
fixedFooter
|
Stała stopka widoczna na dole tej karty.
Ustawienie Obsługiwane przez dodatki do Google Workspace i aplikacje do obsługi czatu. W przypadku aplikacji do obsługi czatu możesz używać stałych stopek w oknach, ale nie w wiadomościach na kartach. |
displayStyle
|
W dodatkach do Google Workspace ustawia właściwości wyświetlania elementu Nieobsługiwane przez aplikacje do obsługi czatu. |
peekCardHeader
|
Gdy wyświetlasz treści kontekstowe, nagłówek karty podglądu jest narzędziem zastępczym, dzięki któremu użytkownik może przechodzić między kartami na stronie głównej i kontekstami kontekstowymi. Nieobsługiwane przez aplikacje do obsługi czatu. |
Nagłówek karty
Reprezentuje nagłówek karty.
Zapis JSON |
---|
{
"title": string,
"subtitle": string,
"imageType": enum (
|
Pola | |
---|---|
title
|
Wymagany. Tytuł nagłówka karty. Nagłówek ma stałą wysokość: jeśli podasz zarówno tytuł, jak i podtytuł, każdy z nich będzie zajmować jeden wiersz. Jeśli podasz tylko tytuł, będzie on obejmować oba wiersze. |
subtitle
|
Podtytuł nagłówka karty. Jeśli jest określony, znajduje się w osobnym wierszu poniżej |
imageType
|
Kształt używany do przycinania. |
imageUrl
|
Adres URL HTTPS obrazu w nagłówku karty. |
imageAltText
|
Tekst zastępczy obrazu, który jest używany przy ułatwieniach dostępu. |
Typ obrazu
Kształt używany do przycinania.
Wartości w polu enum | |
---|---|
SQUARE
|
Wartość domyślna. Stosuje do maski kwadratową. Na przykład obraz o wymiarach 4 × 3 stanie się obrazem 3 × 3. |
CIRCLE
|
Stosuje do maski okrągłą. Na przykład obraz o wymiarach 4 × 3 zmienia się w koło o średnicy 3. |
Sekcja
Sekcja zawiera kolekcję widżetów wyświetlanych w pionie w kolejności, w jakiej zostały określone.
Zapis JSON |
---|
{
"header": string,
"widgets": [
{
object (
|
Pola | |
---|---|
header
|
Tekst wyświetlany u góry sekcji. Obsługuje prosty tekst w formacie HTML. Więcej informacji znajdziesz w sekcjach Formatowanie tekstu w aplikacjach Google Chat i Formatowanie tekstu w dodatkach do Google Workspace. |
widgets[]
|
Wszystkie widżety w sekcji. Musi zawierać co najmniej jeden widżet. |
collapsible
|
Wskazuje, czy ta sekcja jest zwijana. Sekcje zwijane ukrywają niektóre lub wszystkie widżety, ale użytkownicy mogą je rozwinąć, klikając Pokaż więcej. Użytkownicy mogą ponownie ukrywać widżety, klikając Pokaż mniej.
Aby określić, które widżety są ukryte, podaj |
uncollapsibleWidgetsCount
|
Liczba zwijanych widżetów, które są widoczne nawet po zwinięciu sekcji.
Jeśli na przykład sekcja zawiera 5 widżetów, a atrybut |
Widżet
Każda karta składa się z widżetów.
Widżet to obiekt złożony, który może zawierać tekst, obrazy, przyciski lub inne typy obiektów.
Zapis JSON |
---|
{ "horizontalAlignment": enum ( |
Pola | |
---|---|
horizontalAlignment
|
Określa, czy widżety mają być wyrównane do lewej, prawej czy do środka kolumny. |
Pole sumy: data . Widżet może zawierać tylko jeden z tych elementów. Aby wyświetlić więcej elementów, możesz użyć wielu pól widżetów.
data może być tylko jedną z tych wartości:
|
|
textParagraph
|
Wyświetla akapit. Obsługuje prosty tekst w formacie HTML. Więcej informacji znajdziesz w sekcjach Formatowanie tekstu w aplikacjach Google Chat i Formatowanie tekstu w dodatkach do Google Workspace. W poniższym pliku JSON pogrubiony zostanie tekst:
|
image
|
Wyświetla obraz. Na przykład ten JSON tworzy obraz z tekstem alternatywnym:
|
decoratedText
|
Wyświetla ozdobny element tekstowy. Ten przykładowy kod JSON tworzy na przykład ozdobny widżet tekstowy z adresem e-mail:
|
buttonList
|
Lista przycisków. Na przykład poniższy kod JSON tworzy 2 przyciski. Pierwszy to niebieski przycisk tekstowy, a drugi obraz – przycisk, który otwiera link.
|
textInput
|
Wyświetla pole tekstowe, w którym użytkownicy mogą pisać. Na przykład następujący kod JSON tworzy pole tekstowe do adresu e-mail:
W tym przykładzie ten kod JSON tworzy tekst w języku programowania z podpowiedziami statycznymi:
|
selectionInput
|
Wyświetla element wyboru, który pozwala użytkownikom wybierać elementy. Elementami sterującymi mogą być pola wyboru, przyciski, przełączniki i menu. Ten przykładowy plik JSON tworzy menu pozwalające użytkownikom wybrać rozmiar:
|
dateTimePicker
|
Wyświetla widżet, który umożliwia wpisywanie daty, godziny lub daty i godziny. Na przykład ten JSON tworzy selektor daty i godziny, aby zaplanować spotkanie:
|
divider
|
Wyświetla poziomą linię pomiędzy widżetami. Separatorem może być np. następujący kod JSON:
|
grid
|
Wyświetla siatkę z elementami. Siatka obsługuje dowolną liczbę kolumn i elementów. Liczba wierszy zależy od górnej granicy liczby elementów podzielonej przez liczbę kolumn. Siatka z 10 elementami i 2 kolumnami ma 5 wierszy. Siatka zawiera 11 elementów i 2 kolumny, w 6 wierszy. Na przykład poniższy kod JSON tworzy 2-kolumnową siatkę z jednym elementem:
|
columns
|
Wyświetla do 2 kolumn.
Aby uwzględnić więcej niż 2 kolumny lub użyć wierszy, użyj widżetu Na przykład poniższy kod JSON tworzy 2 kolumny, z których każda zawiera akapit:
|
Akapit tekstowy
Akapit z tekstem, który obsługuje formatowanie. Więcej informacji znajdziesz w sekcjach Formatowanie tekstu w aplikacjach Google Chat i Formatowanie tekstu w dodatkach do Google Workspace.
Zapis JSON |
---|
{ "text": string } |
Pola | |
---|---|
text
|
Tekst widoczny w widżecie. |
Obraz
Obraz określony za pomocą adresu URL, który może wykonywać działanie onClick
.
Zapis JSON |
---|
{
"imageUrl": string,
"onClick": {
object (
|
Pola | |
---|---|
imageUrl
|
Adres URL HTTPS, który hostuje obraz. Na przykład:
|
onClick
|
To kliknięcie wywołuje to zdarzenie, gdy użytkownik klika obraz. |
altText
|
Tekst zastępczy obrazu, który jest używany przy ułatwieniach dostępu. |
Po kliknięciu
Wskazuje, jak zareagować, gdy użytkownik kliknie interaktywny element na karcie, np. przycisk.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy:
|
|
action
|
Jeśli zasada jest określona, działanie jest wywoływane przez to zdarzenie |
openLink
|
Jeśli zasada jest określona, |
openDynamicLinkAction
|
Dodatek uruchamia to działanie, gdy musi otworzyć link. Różni się to od powyższego |
card
|
Nowa karta jest przesyłana do stosu kart po kliknięciu, jeśli został określony. Obsługiwana przez dodatki do Google Workspace, ale nie przez aplikacje Google Chat. |
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 ( |
Pola | |
---|---|
function
|
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[]
|
Lista parametrów działania. |
loadIndicator
|
Określa wskaźnik wczytywania wyświetlany podczas wykonywania działania. |
persistValues
|
Wskazuje, czy po formularzu działanie formularza pozostaje aktywne. Wartością domyślną jest
Jeśli pole
Jeśli |
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
Jeśli określisz 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
|
Nazwa parametru skryptu działania. |
value
|
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. |
OpenLink,
Reprezentuje zdarzenie onClick
, które otwiera hiperlink.
Zapis JSON |
---|
{ "url": string, "openAs": enum ( |
Pola | |
---|---|
url
|
Adres URL, który chcesz otworzyć. |
openAs
|
Jak otworzyć link Nieobsługiwane przez aplikacje do obsługi czatu. |
onClose
|
Określa, czy klient zapomni o linku po jego otwarciu czy obserwuje go do momentu zamknięcia okna. Nieobsługiwane przez aplikacje do obsługi czatu. |
OpenAs
Gdy działanie OnClick
otwiera link, klient może otworzyć je w pełnym rozmiarze (jeśli to ramka) lub użyć nakładki (takiej jak wyskakujące okienko). Implementacja zależy od możliwości platformy klienta, a wybrana wartość może zostać zignorowana, jeśli klient jej nie obsługuje.
FULL_SIZE
jest obsługiwany przez wszystkie klienty.
Obsługiwana przez dodatki do Google Workspace, ale nie przez aplikacje Google Chat.
Wartości w polu enum | |
---|---|
FULL_SIZE
|
Link otwiera się w pełnym rozmiarze (jeśli jest to ramka używana przez klienta). |
OVERLAY
|
Link otwiera się w postaci nakładki, np. w wyskakującym okienku. |
OnClose
Co robi klient, gdy link otwarty przez działanie OnClick
zostanie zamknięty.
Implementacja zależy od możliwości platformy klienta. Na przykład przeglądarka może otworzyć link w wyskakującym okienku z metodą OnClose
.
Jeśli moduły obsługi OnOpen
i OnClose
są ustawione, a platforma klienta nie może obsługiwać obu wartości, pierwszeństwo ma OnClose
.
Obsługiwana przez dodatki do Google Workspace, ale nie przez aplikacje Google Chat.
Wartości w polu enum | |
---|---|
NOTHING
|
Wartość domyślna. Karta nie jest ponownie ładowana i nic się nie dzieje. |
RELOAD
|
Ponownie wczyta kartę po zamknięciu okna podrzędnego.
Jeśli zostanie użyty razem z
|
Dekorowany tekst
Widżet wyświetlający tekst z opcjonalnymi elementami dekoracyjnymi, np. etykietą nad lub pod tekstem, ikoną znajdującą się przed tekstem, widżetem wyboru lub przyciskiem po tekście.
Zapis JSON |
---|
{ "icon": { object ( |
Pola | |
---|---|
icon
|
Wycofano na rzecz |
startIcon
|
Ikona wyświetlana przed tekstem. |
topLabel
|
Tekst wyświetlany nad tekstem |
text
|
Wymagany. Tekst główny. Obsługuje proste formatowanie. Więcej informacji znajdziesz w sekcjach Formatowanie tekstu w aplikacjach Google Chat i Formatowanie tekstu w dodatkach do Google Workspace. |
wrapText
|
Ustawienie zawijania tekstu. Jeśli
Dotyczy tylko: |
bottomLabel
|
Tekst widoczny poniżej: |
onClick
|
To działanie jest wywoływane, gdy użytkownicy klikną |
Pole sumy: control . Przycisk, przełącznik, pole wyboru lub obraz wyświetlany po prawej stronie tekstu w widżecie decoratedText .
control może być tylko jedną z tych wartości:
|
|
button
|
Przycisk, który użytkownik może kliknąć, aby wywołać działanie. |
switchControl
|
Widżet przełączania, który użytkownik może kliknąć, aby zmienić stan i aktywować działanie |
endIcon
|
Ikona wyświetlana po tekście. Obsługuje ikony wbudowane i niestandardowe. |
Ikona
Ikona wyświetlana w widżecie na karcie.
Obsługuje ikony wbudowane i niestandardowe.
Zapis JSON |
---|
{ "altText": string, "imageType": enum ( |
Pola | |
---|---|
altText
|
Opcjonalnie. Opis ikony ułatwień dostępu. Jeśli wartość nie jest określona, podawana jest wartość domyślna
Jeśli ikonę jest ustawiona w |
imageType
|
Styl przycinania zastosowany do obrazu. W niektórych przypadkach zastosowanie przycięcia w formacie |
Pole sumy: icons . Ikona wyświetlana w widżecie na karcie.
icons może być tylko jedną z tych wartości:
|
|
knownIcon
|
Wyświetlaj jedną z wbudowanych ikon Google Workspace.
Aby na przykład wyświetlić ikonę samolotu, podaj Pełną listę obsługiwanych ikon znajdziesz w sekcji Ikony wbudowane. |
iconUrl
|
Wyświetlaj ikonę niestandardową hostowaną pod adresem URL HTTPS. Na przykład:
Obsługiwane typy plików to |
Przycisk
Tekst, ikona lub przycisk z tekstem i ikoną, które użytkownicy mogą klikać.
Aby umożliwić kliknięcie obrazu, określ
(nie Image
) i określ działanie ImageComponent
onClick
.
Zapis JSON |
---|
{ "text": string, "icon": { object ( |
Pola | |
---|---|
text
|
Tekst wyświetlany na przycisku. |
icon
|
Obraz ikony. Jeśli ustawione są |
color
|
Po ustawieniu przycisk jest wypełniany jednolitym kolorem tła, a kolor czcionki zmienia się, aby zachować kontrast z kolorem tła. Na przykład ustawienie niebieskiego tła powoduje, że pojawia się biały tekst. Jeśli zasada jest nieskonfigurowana, tło obrazu jest białe, a czcionka ma kolor niebieski.
W przypadku czerwonych, zielonych i niebieskich wartości każdego pola można podać
Opcjonalnie ustaw
W przypadku
Na przykład ten kolor to półprzezroczysty czerwony:
|
onClick
|
Wymagany. Działanie wykonywane, gdy użytkownik kliknie przycisk – na przykład otworzy hiperlink lub uruchomi funkcję niestandardową. |
disabled
|
Jeśli |
altText
|
Tekst alternatywny używany przy ułatwieniach dostępu. Ustaw tekst opisowy informujący użytkowników o przeznaczeniu przycisku. Jeśli na przykład przycisk uruchamia hiperlink, możesz napisać: „Otwiera nową kartę przeglądarki i otwiera dokumentację dla deweloperów Google Chat na stronie https://developers.google.com/chat”. |
Kolor
Odzwierciedla kolor w przestrzeni kolorów RGBA. Ta reprezentacja została zaprojektowana z myślą o prostości w przeliczaniu na różne kolory w różnych językach, a nie tylko pod kątem kompatybilności. Na przykład pola tej reprezentacji można trywizować do konstruktora java.awt.Color
w Javie; można je też podawać do metody +colorWithRed:green:blue:alpha
UIColor w systemie iOS. Niewielką ilość można łatwo sformatować w ramach CSS rgba()
w kodzie CSS.
Na tej stronie nie ma informacji o absolutnej przestrzeni kolorów, która powinna być użyta do zinterpretowania wartości RGB, na przykład sRGB, Adobe RGB, DCI-P3 i BT.2020. Domyślnie aplikacje powinny przyjąć przestrzeń kolorów sRGB.
Jeśli trzeba ustalić równość kolorów, implementacje dwóch kolorów należy traktować jako równoważne, chyba że wszystkie ich wartości czerwone, zielone, niebieskie i alfa różnią się maksymalnie 1e-5
.
Przykład (Java):
import com.google.type.Color;
// ...
public static java.awt.Color fromProto(Color protocolor) {
float alpha = protocolor.hasAlpha()
? protocolor.getAlpha().getValue()
: 1.0;
return new java.awt.Color(
protocolor.getRed(),
protocolor.getGreen(),
protocolor.getBlue(),
alpha);
}
public static Color toProto(java.awt.Color color) {
float red = (float) color.getRed();
float green = (float) color.getGreen();
float blue = (float) color.getBlue();
float denominator = 255.0;
Color.Builder resultBuilder =
Color
.newBuilder()
.setRed(red / denominator)
.setGreen(green / denominator)
.setBlue(blue / denominator);
int alpha = color.getAlpha();
if (alpha != 255) {
result.setAlpha(
FloatValue
.newBuilder()
.setValue(((float) alpha) / denominator)
.build());
}
return resultBuilder.build();
}
// ...
Przykład (iOS / Obj-C):
// ...
static UIColor* fromProto(Color* protocolor) {
float red = [protocolor red];
float green = [protocolor green];
float blue = [protocolor blue];
FloatValue* alpha_wrapper = [protocolor alpha];
float alpha = 1.0;
if (alpha_wrapper != nil) {
alpha = [alpha_wrapper value];
}
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}
static Color* toProto(UIColor* color) {
CGFloat red, green, blue, alpha;
if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
return nil;
}
Color* result = [[Color alloc] init];
[result setRed:red];
[result setGreen:green];
[result setBlue:blue];
if (alpha <= 0.9999) {
[result setAlpha:floatWrapperWithValue(alpha)];
}
[result autorelease];
return result;
}
// ...
Przykład (JavaScript):
// ...
var protoToCssColor = function(rgb_color) {
var redFrac = rgb_color.red || 0.0;
var greenFrac = rgb_color.green || 0.0;
var blueFrac = rgb_color.blue || 0.0;
var red = Math.floor(redFrac * 255);
var green = Math.floor(greenFrac * 255);
var blue = Math.floor(blueFrac * 255);
if (!('alpha' in rgb_color)) {
return rgbToCssColor(red, green, blue);
}
var alphaFrac = rgb_color.alpha.value || 0.0;
var rgbParams = [red, green, blue].join(',');
return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};
var rgbToCssColor = function(red, green, blue) {
var rgbNumber = new Number((red << 16) | (green << 8) | blue);
var hexString = rgbNumber.toString(16);
var missingZeros = 6 - hexString.length;
var resultBuilder = ['#'];
for (var i = 0; i < missingZeros; i++) {
resultBuilder.push('0');
}
resultBuilder.push(hexString);
return resultBuilder.join('');
};
// ...
Zapis JSON |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
Pola | |
---|---|
red
|
Czerwony kolor w postaci wartości z przedziału [0, 1]. |
green
|
Zielony kolor w wartościach z przedziału [0, 1]. |
blue
|
Niebieski kolor w wartościach z przedziału [0, 1]. |
alpha
|
Odsetek tego koloru, który należy zastosować w pikselu. Oznacza to, że końcowy kolor piksela jest określany za pomocą równania:
Oznacza to, że wartość 1,0 odpowiada jednolitemu kolorowi, a wartość 0,0 odpowiada całkowicie przezroczystemu kolorowi. Korzysta on z kodu towarzyszącego, a nie z prostego skalarnego skalarnego, dzięki czemu można odróżnić wartość domyślną od ustawionej. Jeśli ten warunek zostanie pominięty, obiekt koloru jest renderowany jako jednolity kolor (tak jakby wartość alfa wynosiła 1,0). |
SwitchControl
Przełącznik stylu lub pole wyboru w widżecie decoratedText
.
Obsługiwane tylko w widżecie decoratedText
.
Zapis JSON |
---|
{ "name": string, "value": string, "selected": boolean, "onChangeAction": { object ( |
Pola | |
---|---|
name
|
Nazwa, za pomocą której definiuje się widżet przełączania w zdarzeniu wprowadzania danych z formularza. Więcej informacji na temat pracy z danymi z formularzy znajdziesz w artykule Odbieranie danych formularza. |
value
|
Wartość wpisana przez użytkownika, zwracana w ramach zdarzenia wejściowego formularza. Więcej informacji na temat pracy z danymi z formularzy znajdziesz w artykule Odbieranie danych formularza. |
selected
|
Gdy zasada |
onChangeAction
|
Działanie, które ma być wykonywane po zmianie stanu zmiany, np. jakie funkcje mają być wykonywane. |
controlType
|
Wygląd przełącznika w interfejsie. |
Typ elementu sterującego
Wygląd przełącznika w interfejsie.
Wartości w polu enum | |
---|---|
SWITCH
|
Przełącznik. |
CHECKBOX
|
Wycofano na rzecz CHECK_BOX .
|
CHECK_BOX
|
Pole wyboru. |
Lista przycisków
Lista przycisków rozmieszczonych w poziomie.
Zapis JSON |
---|
{
"buttons": [
{
object (
|
Pola | |
---|---|
buttons[]
|
Tablica przycisków. |
Wprowadzanie tekstu
Pole, w którym użytkownicy mogą wpisać tekst. Obsługuje sugestie i działanie w przypadku zmiany.
Aplikacje do obsługi czatu otrzymują i przetwarzają wartość wprowadzanego tekstu podczas zdarzeń w formularzu. Więcej informacji na temat pracy z danymi z formularzy znajdziesz w artykule Odbieranie danych formularza.
Jeśli chcesz zbierać od użytkowników niezdefiniowane lub abstrakcyjne dane, wpisz tekst. Aby zbierać dane zdefiniowane lub wyliczane od użytkowników, użyj widżetu SelectionInput
.
Zapis JSON |
---|
{ "name": string, "label": string, "hintText": string, "value": string, "type": enum ( |
Pola | |
---|---|
name
|
Nazwa określająca dane wejściowe w zdarzeniu wprowadzania danych z formularza. Więcej informacji na temat pracy z danymi z formularzy znajdziesz w artykule Odbieranie danych formularza. |
label
|
Tekst wyświetlany nad polem wprowadzania tekstu w interfejsie.
Podaj tekst, który pomoże użytkownikowi wpisać informacje, których potrzebuje Twoja aplikacja. Jeśli na przykład prosisz kogoś o imię, ale potrzebujesz imienia, wpisz
Wymagany, jeśli właściwość |
hintText
|
Tekst wyświetlany pod polem wprowadzania tekstu, który ma zachęcić użytkowników do wpisania określonej wartości. Ten tekst jest zawsze widoczny.
Wymagany, jeśli właściwość |
value
|
Wartość wpisana przez użytkownika, zwracana w ramach zdarzenia wejściowego formularza. Więcej informacji na temat pracy z danymi z formularzy znajdziesz w artykule Odbieranie danych formularza. |
type
|
Sposób, w jaki w interfejsie wyświetlane jest pole do wprowadzania tekstu. np. czy pole jest jednowierszowe czy wielowierszowe. |
onChangeAction
|
Co zrobić, gdy w polu tekstowym pojawi się zmiana. Na przykład użytkownik dodający do pola lub usuwając tekst. Przykładowe działania to uruchomienie własnej funkcji lub otwarcie okna w Google Chat. |
initialSuggestions
|
Sugerowane wartości, które użytkownicy mogą wpisać. Te wartości pojawiają się, gdy użytkownicy klikają pole do wprowadzania tekstu. Gdy użytkownicy piszą, sugerowane wartości są dynamicznie filtrowane zgodnie z wpisanym tekstem.
Na przykład pole do wprowadzania tekstu w języku programowania może proponować język Java, JavaScript, Python i C++. Gdy użytkownicy zaczną wpisywać
Sugerowane wartości pomagają użytkownikom wpisywać wartości, które mogą być przydatne w aplikacji. Gdy odwołujemy się do JavaScriptu, niektórzy użytkownicy mogą wpisać
Jeśli zasada jest określona, właściwość |
autoCompleteAction
|
Opcjonalnie. Określ, jakie działania mają być wykonywane, gdy pole do wprowadzania tekstu zawiera sugestie dla użytkowników, którzy z niego korzystają.
Jeśli nie określono inaczej, sugestie są ustawiane przez zasadę Jeśli zasada jest skonfigurowana, aplikacja wykonuje opisane tu działanie, takie jak uruchamianie funkcji niestandardowej. Obsługiwana przez dodatki do Google Workspace, ale nie przez aplikacje Google Chat. |
Typ
Sposób, w jaki w interfejsie wyświetlane jest pole do wprowadzania tekstu. np. pole wprowadzania tekstu jednowierszowego czy wielowierszowe.
Jeśli określono initialSuggestions
, type
ma zawsze wartość SINGLE_LINE
, nawet jeśli ustawiona jest wartość MULTIPLE_LINE
.
Wartości w polu enum | |
---|---|
SINGLE_LINE
|
Pole do wprowadzania tekstu ma stałą wysokość 1 wiersza. |
MULTIPLE_LINE
|
Pole do wprowadzania tekstu ma stałą wysokość wielu wierszy. |
Sugestie
Sugerowane wartości, które użytkownicy mogą wpisać. Te wartości pojawiają się, gdy użytkownicy klikają pole do wprowadzania tekstu. Gdy użytkownicy piszą, sugerowane wartości są dynamicznie filtrowane zgodnie z wpisanym tekstem.
Na przykład pole do wprowadzania języka dla języka programowania może proponować język Java, JavaScript, Python i C++. Gdy użytkownicy zaczną wpisywać Jav
, na liście sugestii pojawią się Java
i JavaScript
.
Sugerowane wartości pomagają użytkownikom wpisywać wartości, które mogą być przydatne w aplikacji. Gdy odwołujemy się do JavaScriptu, niektórzy użytkownicy mogą wpisać javascript
, a inne java script
. Sugerowanie właściwości JavaScript
może ujednolicić sposób interakcji użytkowników z aplikacją.
Jeśli zasada jest określona, właściwość TextInput.type
ma zawsze wartość SINGLE_LINE
, nawet jeśli jest ustawiona na MULTIPLE_LINE
.
Zapis JSON |
---|
{
"items": [
{
object (
|
Pola | |
---|---|
items[]
|
Lista sugestii używanych do autouzupełniania rekomendacji w polach wprowadzania tekstu. |
Sugestia elementu
Jedna z sugerowanych wartości, które użytkownicy mogą wpisać w polu tekstowym.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy:
|
|
text
|
Wartość sugerowanego pola wprowadzania tekstu. Jest to odpowiednik tekstu wpisanego przez użytkownika. |
Dane wejściowe – wybór
Widżet tworzący jeden lub więcej elementów interfejsu, które użytkownicy mogą wybrać. Na przykład menu lub pola wyboru. Możesz użyć tego widżetu do zbierania danych, które mogą zostać przewidziane lub wyliczone.
Aplikacje do obsługi czatu przetwarzają wartości wybrane lub wpisane przez użytkowników. Więcej informacji na temat pracy z danymi z formularzy znajdziesz w artykule Odbieranie danych formularza.
Aby zbierać od użytkowników niezdefiniowane lub abstrakcyjne dane, użyj widżetu TextInput
.
Zapis JSON |
---|
{ "name": string, "label": string, "type": enum ( |
Pola | |
---|---|
name
|
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
|
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
|
Typ elementów wyświetlanych użytkownikom w widżecie |
items[]
|
Tablica elementów do wyboru. Przykładem może być tablica opcji lub pól wyboru. Obsługuje do 100 elementów. |
onChangeAction
|
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
Format elementów, które użytkownicy mogą wybierać. Różne opcje obsługują różne typy interakcji. Użytkownicy mogą na przykład zaznaczać wiele pól wyboru, ale z menu mogą wybrać tylko jeden element.
Każdy wybór typu danych obsługuje 1 typ wyboru. Nie można np. łączyć pól wyboru i przełączników.
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
Element, który użytkownicy mogą wybierać w danych wejściowych, takich jak pole wyboru lub przełącznik.
Zapis JSON |
---|
{ "text": string, "value": string, "selected": boolean } |
Pola | |
---|---|
text
|
Tekst określający lub opisujący produkt użytkownikom. |
value
|
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
|
Jeśli wybrano element |
Selektor daty i godziny
To ustawienie pozwala użytkownikom wpisać datę, godzinę lub datę i godzinę.
Użytkownicy mogą wprowadzać tekst lub wybierać daty i godziny za pomocą selektora. Jeśli użytkownicy wpiszą nieprawidłową datę lub godzinę, selektor wyświetli komunikat z prośbą o prawidłowe podanie informacji.
Zapis JSON |
---|
{ "name": string, "label": string, "type": enum ( |
Pola | |
---|---|
name
|
Nazwa, za pomocą której określony jest element Więcej informacji na temat pracy z danymi z formularzy znajdziesz w artykule Odbieranie danych formularza. |
label
|
Tekst zachęcający użytkowników do wpisania daty, godziny lub daty i godziny. Jeśli na przykład użytkownicy planują spotkanie, użyj etykiety takiej jak |
type
|
Określa, czy widżet obsługuje wprowadzanie daty, godziny lub daty i godziny. |
valueMsEpoch
|
Wartość domyślna wyświetlana w widżecie w milisekundach od czasu uniksowego.
Określ wartość w zależności od typu selektora (
|
timezoneOffsetDate
|
Liczba określająca przesunięcie czasu względem strefy czasowej UTC w minutach. Jeśli zasada jest ustawiona, wartość |
onChangeAction
|
Wywoływane, gdy użytkownik kliknie Zapisz lub Wyczyść w interfejsie |
Typ daty i godziny
Format daty i godziny w widżecie DateTimePicker
. Określa, czy użytkownicy mogą wpisać datę, godzinę lub datę i godzinę.
Wartości w polu enum | |
---|---|
DATE_AND_TIME
|
Użytkownicy wpisują datę i godzinę. |
DATE_ONLY
|
Użytkownicy wpisują datę. |
TIME_ONLY
|
Użytkownicy wpisują godzinę. |
Separator
Wyświetla linię między widżetami jako poziomą linię.
Separatorem może być np. następujący kod JSON:
"divider": {}
Siatka
Wyświetla siatkę z elementami. Elementy mogą zawierać tylko tekst lub obrazy.
Siatka obsługuje dowolną liczbę kolumn i elementów. Liczba wierszy zależy od elementów podzielonych przez kolumny. Siatka z 10 elementami i 2 kolumnami ma 5 wierszy. Siatka zawiera 11 elementów i 2 kolumny, w 6 wierszy.
W przypadku kolumn elastycznych lub aby uwzględnić więcej niż tekst lub obrazy, użyj
.
Columns
Na przykład poniższy kod JSON tworzy 2-kolumnową siatkę z jednym elementem:
"grid": {
"title": "A fine collection of items",
"columnCount": 2,
"borderStyle": {
"type": "STROKE",
"cornerRadius": 4
},
"items": [
{
"image": {
"imageUri": "https://www.example.com/image.png",
"cropStyle": {
"type": "SQUARE"
},
"borderStyle": {
"type": "STROKE"
}
},
"title": "An item",
"textAlignment": "CENTER"
}
],
"onClick": {
"openLink": {
"url": "https://www.example.com"
}
}
}
Zapis JSON |
---|
{ "title": string, "items": [ { object ( |
Pola | |
---|---|
title
|
Tekst wyświetlany w nagłówku siatki. |
items[]
|
Elementy do wyświetlenia w siatce. |
borderStyle
|
Styl obramowania, który zostanie zastosowany do każdego elementu siatki. |
columnCount
|
Liczba kolumn wyświetlanych w siatce. Jeśli nie określisz wartości tego pola, będzie używana wartość domyślna, która różni się w zależności od tego, gdzie wyświetla się siatka (dialog i element towarzyszący). |
onClick
|
To wywołanie zwrotne jest używane przez każdy element siatki, ale z identyfikatorem i indeksem elementu na liście elementów dodanej do parametrów wywołania zwrotnego. |
Element siatki
Reprezentuje element w układzie siatki. Elementy mogą zawierać tekst, obraz lub tekst i obraz.
Zapis JSON |
---|
{ "id": string, "image": { object ( |
Pola | |
---|---|
id
|
Identyfikator użytkownika określony przez użytkownika dla tego elementu siatki. Ten identyfikator jest zwracany w parametrach wywołania |
image
|
Obraz wyświetlany w elemencie siatki. |
title
|
Tytuł elementu siatki. |
subtitle
|
Podtytuł elementu siatki. |
layout
|
Układ, który ma być używany na potrzeby elementu siatki. |
Komponent graficzny
Reprezentuje obraz.
Zapis JSON |
---|
{ "imageUri": string, "altText": string, "cropStyle": { object ( |
Pola | |
---|---|
imageUri
|
Adres URL obrazu. |
altText
|
Etykieta ułatwień dostępu obrazu. |
cropStyle
|
Styl przycinania, który ma zostać zastosowany do obrazu. |
borderStyle
|
Styl obramowania, który zostanie zastosowany do obrazu. |
StylObraza
Odnosi się do stylu przycinania zastosowanego do obrazu.
Aby na przykład zastosować współczynnik proporcji 16:9:
cropStyle {
"type": "RECTANGLE_CUSTOM",
"aspectRatio": 16/9
}
Zapis JSON |
---|
{
"type": enum (
|
Pola | |
---|---|
type
|
Typ przycięcia. |
aspectRatio
|
Współczynnik proporcji używany, jeśli typ przycięcia to Aby na przykład zastosować współczynnik proporcji 16:9:
|
Typ przycinania obrazu
Odnosi się do stylu przycinania zastosowanego do obrazu.
Wartości w polu enum | |
---|---|
IMAGE_CROP_TYPE_UNSPECIFIED
|
Nie określono wartości. Nie używaj. |
SQUARE
|
Wartość domyślna. Przytnij obraz kwadratowy. |
CIRCLE
|
Zastosowanie przycięcia. |
RECTANGLE_CUSTOM
|
Stosuje prostokątne przycięcie do niestandardowego formatu obrazu. Ustaw niestandardowy współczynnik proporcji aspectRatio .
|
RECTANGLE_4_3
|
Stosuje prostokątne przycięcie do formatu 4:3. |
Styl obramowania
Opcje stylu obramowania karty i widżetu, w tym typ i kolor obramowania.
Zapis JSON |
---|
{ "type": enum ( |
Pola | |
---|---|
type
|
Typ obramowania. |
strokeColor
|
Kolory używane, gdy typ to |
cornerRadius
|
Promień narożnika obramowania. |
Typ obramowania
Odzwierciedla typy obramowania zastosowane do widżetów.
Wartości w polu enum | |
---|---|
BORDER_TYPE_UNSPECIFIED
|
Nie określono wartości. |
NO_BORDER
|
Wartość domyślna. Bez obramowania. |
STROKE
|
Kontur. |
Układ siatki
Odzwierciedla różne opcje układu dostępne dla elementu siatki.
Wartości w polu enum | |
---|---|
GRID_ITEM_LAYOUT_UNSPECIFIED
|
Nie określono układu. |
TEXT_BELOW
|
Tytuł i podtytuł są wyświetlane poniżej obrazu elementu siatki. |
TEXT_ABOVE
|
Tytuł i podtytuł są wyświetlane nad obrazem elementu siatki. |
Kolumny
Widżet Columns
wyświetla maksymalnie 2 kolumny w wiadomości lub oknie dialogowym karty. Do każdej kolumny możesz dodawać widżety – są one wyświetlane w kolejności, w jakiej zostały określone.
Wysokość każdej kolumny zależy od wysokości kolumny. Jeśli na przykład pierwsza kolumna jest wyższa niż druga kolumna, obie są wysokością pierwszej kolumny. Ponieważ każda kolumna może zawierać różną liczbę widżetów, nie można definiować wierszy ani wyrównywać widżetów między kolumnami.
Kolumny są wyświetlane obok siebie. Szerokość każdej kolumny możesz dostosować za pomocą pola HorizontalSizeStyle
. Jeśli szerokość ekranu użytkownika jest zbyt wąska, druga kolumna zawija się poniżej pierwszej:
- W przypadku stron internetowych druga kolumna zawija się, jeśli szerokość ekranu jest mniejsza niż lub równa 480 pikseli.
- Na urządzeniach z iOS druga kolumna zawija się, jeśli szerokość ekranu jest mniejsza lub równa 300 pkt.
- Na urządzeniach z Androidem druga kolumna zawija się, jeśli szerokość ekranu jest mniejsza lub równa 320 dp.
Aby uwzględnić więcej niż 2 kolumny lub użyć wierszy, użyj widżetu
.
Grid
Obsługiwane przez aplikacje do obsługi czatu, ale nie w ramach dodatków do Google Workspace.
Zapis JSON |
---|
{
"columnItems": [
{
object (
|
Pola | |
---|---|
columnItems[]
|
Tablica kolumn. Na karcie lub w oknie dialogowym możesz umieścić maksymalnie 2 kolumny. |
Kolumna
Kolumna.
Zapis JSON |
---|
{ "horizontalSizeStyle": enum ( |
Pola | |
---|---|
horizontalSizeStyle
|
Określa, jak kolumna wypełnia szerokość karty. |
horizontalAlignment
|
Określa, czy widżety mają być wyrównane do lewej, prawej czy do środka kolumny. |
verticalAlignment
|
Określa, czy widżety mają być wyrównane do góry, na dole czy na środku kolumny. |
widgets[]
|
Tablica widżetów zawartych w kolumnie. Widżety są wyświetlane w kolejności, w jakiej zostały określone. |
Styl HorizontalSizeStyle
Określa, jak kolumna wypełnia szerokość karty. Szerokość każdej kolumny zależy od HorizontalSizeStyle
i szerokości widżetów w tej kolumnie.
Wartości w polu enum | |
---|---|
HORIZONTAL_SIZE_STYLE_UNSPECIFIED
|
Nie określono. Nie używać. |
FILL_AVAILABLE_SPACE
|
Wartość domyślna. Kolumna wypełnia dostępne miejsce (do 70% szerokości karty). Jeśli obie kolumny mają wartość FILL_AVAILABLE_SPACE , każda z nich wypełni 50% miejsca.
|
FILL_MINIMUM_SPACE
|
Kolumna wypełnia jak najmniejszą ilość miejsca, nie zajmując więcej niż 30% szerokości karty. |
Wyrównanie w poziomie
Określa, czy widżety mają być wyrównane do lewej, prawej czy do środka kolumny.
Wartości w polu enum | |
---|---|
HORIZONTAL_ALIGNMENT_UNSPECIFIED
|
Nie określono. Nie używać. |
START
|
Wartość domyślna. Wyrównuje widżety do pozycji początkowej kolumny. W przypadku układów od lewej do prawej jest wyrównana do lewej. W przypadku układów od prawej do lewej wyrównanie do prawej. |
CENTER
|
Wyrównuje widżety do środka kolumny. |
END
|
Wyrównuje widżety do pozycji końcowej kolumny. W przypadku układów od lewej do prawej wyrównuje widżety do prawej. W przypadku układów od prawej do lewej wyrównuje widżety do lewej. |
Wyrównanie w pionie
Określa, czy widżety mają być wyrównane do góry, na dole czy na środku kolumny.
Wartości w polu enum | |
---|---|
VERTICAL_ALIGNMENT_UNSPECIFIED
|
Nie określono. Nie używaj. |
CENTER
|
Wartość domyślna. Wyrównuje widżety do środka kolumny. |
TOP
|
Wyrównuje widżety do górnej części kolumny. |
BOTTOM
|
Wyrównuje widżety do dołu kolumny. |
Widżety
Obsługiwane widżety, które można umieścić w kolumnie.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy:
|
|
textParagraph
|
Widżet |
image
|
Widżet |
decoratedText
|
Widżet |
buttonList
|
Widżet |
textInput
|
Widżet |
selectionInput
|
Widżet |
dateTimePicker
|
Widżet |
Działanie CardCard
Działanie karty to działanie powiązane z kartą. Na przykład karta faktury może zawierać informacje o usunięciu faktury, e-mailu lub otwarciu faktury w przeglądarce.
Nieobsługiwane przez aplikacje do obsługi czatu.
Zapis JSON |
---|
{
"actionLabel": string,
"onClick": {
object (
|
Pola | |
---|---|
actionLabel
|
Etykieta wyświetlana jako element menu czynności. |
onClick
|
Działanie |
Styl wyświetlania
W dodatkach do Google Workspace określa sposób wyświetlania karty.
Nieobsługiwane przez aplikacje do obsługi czatu.
Wartości w polu enum | |
---|---|
DISPLAY_STYLE_UNSPECIFIED
|
Nie używaj. |
PEEK
|
Nagłówek karty pojawia się u dołu paska bocznego, częściowo za pomocą bieżącej karty w stosie. Kliknięcie nagłówka spowoduje umieszczenie karty w stosie kart. Jeśli karta nie ma nagłówka, zostanie użyty wygenerowany nagłówek. |
REPLACE
|
Wartość domyślna. Karta jest wyświetlana, zastępując widok górnej karty w stosie. |