Cards v2

כרטיס

ממשק של כרטיס שמוצג בהודעה ב-Google Chat או בתוסף של Google Workspace.

הכרטיסים תומכים בפריסה מוגדרת, ברכיבים אינטראקטיביים בממשק המשתמש כמו לחצנים ובמדיה עשירה כמו תמונות. אפשר להשתמש בכרטיסים כדי להציג מידע מפורט, לאסוף מידע ממשתמשים ולהדריך את המשתמשים איך לבצע את הפעולה הבאה.

תוכלו להיעזר במסמכים הבאים כדי ללמוד איך יוצרים כרטיסים:

דוגמה: הודעה בכרטיס לאפליקציית Google Chat

דוגמה לכרטיס איש קשר

כדי ליצור את ההודעה עם הכרטיס לדוגמה ב-Google Chat, צריך להשתמש בקובץ ה-JSON הבא:

{
  "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",
                            }
                          ],
                        }
                      }
                    },
                  ],
                }
              },
            ],
          },
        ],
      },
    }
  ],
}
ייצוג JSON
{
  "header": {
    object (CardHeader)
  },
  "sections": [
    {
      object (Section)
    }
  ],
  "sectionDividerStyle": enum (DividerStyle),
  "cardActions": [
    {
      object (CardAction)
    }
  ],
  "name": string,
  "fixedFooter": {
    object (CardFixedFooter)
  },
  "displayStyle": enum (DisplayStyle),
  "peekCardHeader": {
    object (CardHeader)
  }
}
שדות
header

object (CardHeader)

הכותרת של הכרטיס. כותרת כוללת בדרך כלל תמונה מובילה וכותרת. כותרות מופיעות תמיד בחלק העליון של כרטיס.

sections[]

object (Section)

מכיל אוסף של ווידג'טים. לכל קטע יש כותרת אופציונלית משלו. המקטעים מופרדים באופן חזותי באמצעות קו מפריד. דוגמאות לאפליקציות של Google Chat זמינות בקטע 'כרטיסים'.

sectionDividerStyle

enum (DividerStyle)

סגנון ההפרדה בין הקטעים.

cardActions[]

object (CardAction)

הפעולות בכרטיס. הפעולות מתווספות לתפריט סרגל הכלים של הכרטיס.

בכרטיסים של אפליקציות Chat אין סרגל כלים, ולכן אפליקציות Chat לא תומכות ב-cardActions[].

לדוגמה, קובץ ה-JSON הבא בונה תפריט פעולות בכרטיס עם האפשרויות Settings ו-Send Feedback:

"cardActions": [
  {
    "actionLabel": "Settings",
    "onClick": {
      "action": {
        "functionName": "goToView",
        "parameters": [
          {
            "key": "viewType",
            "value": "SETTING"
         }
        ],
        "loadIndicator": "LoadIndicator.SPINNER"
      }
    }
  },
  {
    "actionLabel": "Send Feedback",
    "onClick": {
      "openLink": {
        "url": "https://example.com/feedback"
      }
    }
  }
]
name

string

שם הכרטיס. משמש כמזהה כרטיס בניווט בכרטיסים.

אפליקציות צ'אט לא תומכות בניווט בכרטיסים, ולכן הן מתעלמות מהשדה הזה.

displayStyle

enum (DisplayStyle)

בתוספים של Google Workspace, מגדירה את מאפייני התצוגה של peekCardHeader.

ההגדרה הזו לא נתמכת באפליקציות צ'אט.

peekCardHeader

object (CardHeader)

בהצגת תוכן לפי הקשר, הכותרת של כרטיס ההצצה משמשת כ-placeholder שמאפשר למשתמשים לנווט קדימה בין הכרטיסים בדף הבית לבין הכרטיסים לפי הקשר.

ההגדרה הזו לא נתמכת באפליקציות צ'אט.

כותרת הכרטיס

מייצג כותרת של כרטיס. דוגמאות רלוונטיות לאפליקציות של Google Chat: כותרת הכרטיס.

ייצוג JSON
{
  "title": string,
  "subtitle": string,
  "imageType": enum (ImageType),
  "imageUrl": string,
  "imageAltText": string
}
שדות
title

string

חובה. הכותרת של כותרת הכרטיס. לכותרת יש גובה קבוע: אם צוינו כותרת וכותרת משנה, כל אחת מהן תופסת שורה אחת. אם צוינה רק כותרת, היא תחול על שתי השורות.

subtitle

string

כותרת המשנה של כותרת הכרטיס. אם צוין, יופיע בשורה נפרדת מתחת לערך title.

imageType

enum (ImageType)

הצורה המשמשת לחיתוך התמונה.

imageUrl

string

כתובת ה-URL מסוג HTTPS של התמונה בכותרת הכרטיס.

imageAltText

string

הטקסט החלופי של התמונה הזו המשמש לנגישות.

סוג תמונה

הצורה המשמשת לחיתוך התמונה.

טיפוסים בני מנייה (enum)
SQUARE ערך ברירת המחדל. החלת מסכה ריבועית על התמונה. לדוגמה, תמונה בגודל 4x3 הופכת לגודל 3x3.
CIRCLE מוסיפים לתמונה מסכה מעוגלת. לדוגמה, תמונה בגודל 4x3 הופכת לעיגול בקוטר 3.

קטע

קטע מכיל אוסף של ווידג'טים שעברו רינדור אנכי לפי הסדר שבו הם צוינו.

ייצוג JSON
{
  "header": string,
  "widgets": [
    {
      object (Widget)
    }
  ],
  "collapsible": boolean,
  "uncollapsibleWidgetsCount": integer
}
שדות
header

string

טקסט שמופיע בחלק העליון של קטע הטקסט. יש תמיכה בטקסט פשוט בפורמט HTML. למידע נוסף על עיצוב טקסט, תוכלו לקרוא את המאמר עיצוב טקסט באפליקציות של Google Chat ועיצוב טקסט בתוספים של Google Workspace.

widgets[]

object (Widget)

כל הווידג'טים שבקטע. חייב להכיל ווידג'ט אחד לפחות.

collapsible

boolean

שדה זה מציין אם ניתן לכווץ את הקטע הזה.

בקטעים שניתנים לכיווץ, חלק מהווידג'טים או כולם מוסתרים, אבל המשתמשים יכולים להרחיב את הקטע כדי לחשוף את הווידג'טים המוסתרים על ידי לחיצה על Show more. כדי להסתיר את הווידג'טים, המשתמשים לוחצים על הצגת פחות.

כדי לקבוע אילו ווידג'טים מוסתרים, צריך לציין uncollapsibleWidgetsCount.

uncollapsibleWidgetsCount

integer

מספר הווידג'טים שאינם ניתנים לכיווץ, שנשארים גלויים גם כאשר קטע מכווץ.

לדוגמה, אם קטע מכיל חמישה ווידג'טים והמאפיין uncollapsibleWidgetsCount מוגדר לערך 2, שני הווידג'טים הראשונים מוצגים תמיד ושלושת הווידג'טים האחרונים מכווצים כברירת מחדל. הערך uncollapsibleWidgetsCount נלקח בחשבון רק כאשר הערך של collapsible הוא true.

ווידג'ט

כל כרטיס מורכב מווידג'טים.

ווידג'ט הוא אובייקט מורכב שיכול לייצג טקסט, תמונות, לחצנים וסוגי אובייקטים אחרים.

ייצוג JSON
{
  "horizontalAlignment": enum (HorizontalAlignment),

  // Union field data can be only one of the following:
  "textParagraph": {
    object (TextParagraph)
  },
  "image": {
    object (Image)
  },
  "decoratedText": {
    object (DecoratedText)
  },
  "buttonList": {
    object (ButtonList)
  },
  "textInput": {
    object (TextInput)
  },
  "selectionInput": {
    object (SelectionInput)
  },
  "dateTimePicker": {
    object (DateTimePicker)
  },
  "divider": {
    object (Divider)
  },
  "grid": {
    object (Grid)
  },
  "columns": {
    object (Columns)
  }
  // End of list of possible types for union field data.
}
שדות
horizontalAlignment

enum (HorizontalAlignment)

קובעת אם הווידג'טים מיושרים לשמאל, לימין או למרכז של עמודה.

שדה איחוד data. ווידג'ט יכול לכלול רק אחד מהפריטים הבאים. אפשר להשתמש בכמה שדות של ווידג'טים כדי להציג יותר פריטים. data יכול להיות רק אחת מהאפשרויות הבאות:
textParagraph

object (TextParagraph)

הצגת פסקה של טקסט. יש תמיכה בטקסט פשוט בפורמט HTML. למידע נוסף על עיצוב טקסט, תוכלו לקרוא את המאמר עיצוב טקסט באפליקציות של Google Chat ועיצוב טקסט בתוספים של Google Workspace.

לדוגמה, קובץ ה-JSON הבא יוצר טקסט מודגש:

"textParagraph": {
  "text": "  <b>bold text</b>"
}
image

object (Image)

מוצגת תמונה.

לדוגמה, קובץ ה-JSON הבא יוצר תמונה עם טקסט חלופי:

"image": {
  "imageUrl":
  "https://developers.google.com/chat/images/quickstart-app-avatar.png",
  "altText": "Chat app avatar"
}
decoratedText

object (DecoratedText)

מוצג פריט טקסט מעוצב.

לדוגמה, קובץ ה-JSON הבא יוצר ווידג'ט טקסט מעוצב שמציג כתובת אימייל:

"decoratedText": {
  "icon": {
    "knownIcon": "EMAIL"
  },
  "topLabel": "Email Address",
  "text": "sasha@example.com",
  "bottomLabel": "This is a new Email address!",
  "switchControl": {
    "name": "has_send_welcome_email_to_sasha",
    "selected": false,
    "controlType": "CHECKBOX"
  }
}
buttonList

object (ButtonList)

רשימת לחצנים.

לדוגמה, קובץ ה-JSON הבא יוצר שני לחצנים. הלחצן הראשון הוא לחצן טקסט כחול והשני הוא לחצן תמונה שפותח קישור:

"buttonList": {
  "buttons": [
    {
      "text": "Edit",
      "color": {
        "red": 0,
        "green": 0,
        "blue": 1,
        "alpha": 1
      },
      "disabled": true,
    },
    {
      "icon": {
        "knownIcon": "INVITE",
        "altText": "check calendar"
      },
      "onClick": {
        "openLink": {
          "url": "https://example.com/calendar"
        }
      }
    }
  ]
}
textInput

object (TextInput)

הצגת תיבת טקסט שהמשתמשים יכולים להקליד בה.

לדוגמה, קובץ ה-JSON הבא יוצר קלט טקסט לכתובת אימייל:

"textInput": {
  "name": "mailing_address",
  "label": "Mailing Address"
}

דוגמה נוספת: קובץ ה-JSON הבא יוצר קלט טקסט לשפת תכנות עם הצעות סטטיות:

"textInput": {
  "name": "preferred_programing_language",
  "label": "Preferred Language",
  "initialSuggestions": {
    "items": [
      {
        "text": "C++"
      },
      {
        "text": "Java"
      },
      {
        "text": "JavaScript"
      },
      {
        "text": "Python"
      }
    ]
  }
}
selectionInput

object (SelectionInput)

מוצגת פקד בחירה שמאפשר למשתמשים לבחור פריטים. פקדי הבחירה יכולים להיות תיבות סימון, לחצני בחירה, מתגים או תפריטים נפתחים.

לדוגמה, קובץ ה-JSON הבא יוצר תפריט נפתח שמאפשר למשתמשים לבחור גודל:

"selectionInput": {
  "name": "size",
  "label": "Size"
  "type": "DROPDOWN",
  "items": [
    {
      "text": "S",
      "value": "small",
      "selected": false
    },
    {
      "text": "M",
      "value": "medium",
      "selected": true
    },
    {
      "text": "L",
      "value": "large",
      "selected": false
    },
    {
      "text": "XL",
      "value": "extra_large",
      "selected": false
    }
  ]
}
dateTimePicker

object (DateTimePicker)

הצגת ווידג'ט שמאפשר למשתמשים להזין תאריך, שעה או תאריך ושעה.

לדוגמה, קובץ ה-JSON הבא יוצר בוחר תאריך ושעה כדי לקבוע פגישה:

"dateTimePicker": {
  "name": "appointment_time",
  "label": "Book your appointment at:",
  "type": "DATE_AND_TIME",
  "valueMsEpoch": "796435200000"
}
divider

object (Divider)

הצגת קו מפריד של קו אופקי בין ווידג'טים.

לדוגמה, קובץ ה-JSON הבא יוצר מחיצה:

"divider": {
}
grid

object (Grid)

הצגת רשת עם אוסף של פריטים.

רשת תומכת בכל מספר של עמודות ופריטים. מספר השורות נקבע לפי הגבול העליון של מספר הפריטים חלקי מספר העמודות. רשת שמכילה 10 פריטים ו-2 עמודות מכילה 5 שורות. רשת שמכילה 11 פריטים ו-2 עמודות מכילה 6 שורות.

לדוגמה, קובץ ה-JSON הבא יוצר רשת של שתי עמודות עם פריט אחד:

"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"
    }
  }
}
columns

object (Columns)

הצגת עד 2 עמודות.

כדי לכלול יותר מ-2 עמודות או כדי להשתמש בשורות, צריך להשתמש בווידג'ט Grid.

לדוגמה, קובץ ה-JSON הבא יוצר 2 עמודות שכל אחת מהן מכילה פסקאות טקסט:

"columns": {
  "columnItems": [
    {
      "horizontalSizeStyle": "FILL_AVAILABLE_SPACE",
      "horizontalAlignment": "CENTER",
      "verticalAlignment": "CENTER",
      "widgets": [
        {
          "textParagraph": {
            "text": "First column text paragraph"
          }
        }
      ]
    },
    {
      "horizontalSizeStyle": "FILL_AVAILABLE_SPACE",
      "horizontalAlignment": "CENTER",
      "verticalAlignment": "CENTER",
      "widgets": [
        {
          "textParagraph": {
            "text": "Second column text paragraph"
          }
        }
      ]
    }
  ]
}

פיסת טקסט

פסקה של טקסט שתומכת בעיצוב. במאמר פסקת טקסט תוכלו לראות דוגמאות באפליקציות של Google Chat. למידע נוסף על עיצוב טקסט, תוכלו לקרוא את המאמר עיצוב טקסט באפליקציות של Google Chat ועיצוב טקסט בתוספים של Google Workspace.

ייצוג JSON
{
  "text": string
}
שדות
text

string

הטקסט שמופיע בווידג'ט.

תמונה

תמונה שצוינה באמצעות כתובת URL ויכולה לבצע פעולה onClick. לדוגמה, אפשר לעיין במאמר תמונה.

ייצוג JSON
{
  "imageUrl": string,
  "onClick": {
    object (OnClick)
  },
  "altText": string
}
שדות
imageUrl

string

כתובת ה-URL מסוג HTTPS שמארחת את התמונה.

לדוגמה:

https://developers.google.com/chat/images/quickstart-app-avatar.png
onClick

object (OnClick)

כשמשתמש לוחץ על התמונה, הקליק מפעיל את הפעולה הזו.

altText

string

הטקסט החלופי של התמונה הזו המשמש לנגישות.

בלחיצה

מייצגת איך להגיב כשמשתמשים לוחצים על רכיב אינטראקטיבי בכרטיס, כמו לחצן.

ייצוג JSON
{

  // Union field data can be only one of the following:
  "action": {
    object (Action)
  },
  "openLink": {
    object (OpenLink)
  },
  "openDynamicLinkAction": {
    object (Action)
  },
  "card": {
    object (Card)
  }
  // End of list of possible types for union field data.
}
שדות

שדה איחוד data.

data יכול להיות רק אחת מהאפשרויות הבאות:

action

object (Action)

אם צוין, פעולה מסוימת תופעל על ידי onClick הזה.

card

object (Card)

אם צוין כרטיס חדש, הוא יידחף לערימת הכרטיסים לאחר לחיצה.

יש תמיכה בתוספים של Google Workspace, אבל לא באפליקציות של Google Chat.

פעולה

פעולה שמתארת את ההתנהגות בזמן שליחת הטופס. לדוגמה, אפשר להפעיל סקריפט של Apps Script כדי לטפל בטופס. אם הפעולה מופעלת, ערכי הטופס נשלחים לשרת.

ייצוג JSON
{
  "function": string,
  "parameters": [
    {
      object (ActionParameter)
    }
  ],
  "loadIndicator": enum (LoadIndicator),
  "persistValues": boolean,
  "interaction": enum (Interaction)
}
שדות
function

string

פונקציה מותאמת אישית להפעלה כשמשתמש לוחץ על הרכיב שמכיל את הרכיב או כאשר הוא מופעל בכל זמן.

לדוגמה, אפשר לקרוא את המאמר יצירת כרטיסים אינטראקטיביים.

parameters[]

object (ActionParameter)

רשימת פרמטרים של פעולות.

loadIndicator

enum (LoadIndicator)

מציין את אינדיקטור הטעינה שמוצג לפעולה במהלך הקריאה לפעולה.

persistValues

boolean

שדה זה מציין אם ערכי הטופס נשארים לאחר ביצוע הפעולה. ערך ברירת המחדל הוא false.

אם הערך הוא true, ערכי הטופס יישארו לאחר הפעלת הפעולה. כדי לאפשר למשתמש לבצע שינויים בזמן עיבוד הפעולה, צריך להגדיר את הערך של LoadIndicator לערך NONE. לגבי הודעות עם כרטיסים באפליקציות צ'אט, צריך גם להגדיר את הערך ResponseType של הפעולה כ-UPDATE_MESSAGE ולהשתמש באותו cardId בכרטיס שמכיל את הפעולה.

אם הערך הוא false, ערכי הטופס נמחקים כשהפעולה מופעלת. כדי למנוע מהמשתמש לבצע שינויים בזמן שהפעולה מתבצעת, צריך להגדיר את הערך LoadIndicator כ- SPINNER.

interaction

enum (Interaction)

אופציונלי. חובה כשפותחים תיבת דו-שיח.

מה לעשות בתגובה לאינטראקציה עם משתמש, למשל לחיצה של משתמש על לחצן בהודעה בכרטיס.

אם לא צוין אחרת, האפליקציה מגיבה באמצעות הפעלת action — כמו פתיחת קישור או הפעלת פונקציה – כרגיל.

אם מציינים interaction, האפליקציה יכולה להגיב בדרכים אינטראקטיביות מיוחדות. לדוגמה, אם מגדירים את interaction לערך OPEN_DIALOG, האפליקציה יכולה לפתוח תיבת דו-שיח. אם המדיניות מוגדרת, לא יוצג אינדיקטור לטעינה.

יש תמיכה באפליקציות Chat, אבל לא בתוספים של Google Workspace. אם צוין עבור תוסף, הכרטיס כולו יוסר ולא יוצג דבר ללקוח.

פרמטר פעולה

רשימת הפרמטרים של המחרוזת שיש לספק כששיטת הפעולה מופעלת. לדוגמה, אפשר להשתמש בשלושה לחצני 'נודניק': 'לטיפול בהמשך' עכשיו, 'לטיפול בהמשך' ביום אחד או 'לטיפול בהמשך' בשבוע הבא. אפשר להשתמש בערך action method = snooze(), שמעבירים את סוג ההשהיה ואת משך ההשהיה ברשימת הפרמטרים של המחרוזת.

למידע נוסף: CommonEventObject.

ייצוג JSON
{
  "key": string,
  "value": string
}
שדות
key

string

שם הפרמטר עבור סקריפט הפעולה.

value

string

ערך הפרמטר.

אינדיקטור לטעינה

מציין את אינדיקטור הטעינה שמוצג לפעולה במהלך הקריאה לפעולה.

טיפוסים בני מנייה (enum)
SPINNER מציג טבעת שמציינת שהתוכן נטען.
NONE לא מוצג דבר.

אינטראקציה

אופציונלי. חובה כשפותחים תיבת דו-שיח.

מה לעשות בתגובה לאינטראקציה עם משתמש, למשל לחיצה של משתמש על לחצן בהודעה בכרטיס.

אם לא צוין אחרת, האפליקציה מגיבה באמצעות הפעלת action — כמו פתיחת קישור או הפעלת פונקציה – כרגיל.

אם מציינים interaction, האפליקציה יכולה להגיב בדרכים אינטראקטיביות מיוחדות. לדוגמה, אם מגדירים את interaction לערך OPEN_DIALOG, האפליקציה יכולה לפתוח תיבת דו-שיח.

אם המדיניות מוגדרת, לא יוצג אינדיקטור לטעינה.

יש תמיכה באפליקציות Chat, אבל לא בתוספים של Google Workspace. אם צוין עבור תוסף, הכרטיס כולו יוסר ולא יוצג דבר ללקוח.

טיפוסים בני מנייה (enum)
INTERACTION_UNSPECIFIED ערך ברירת המחדל. הערך action פועל כרגיל.
OPEN_DIALOG

פתיחת תיבת דו-שיח – ממשק מבוסס-חלון עם כרטיסיות שמשמשות אפליקציות צ'אט לאינטראקציה עם משתמשים.

התכונה נתמכת רק באפליקציות Chat בתגובה לקליקים על הודעות בכרטיס.

הפעולה הזאת לא נתמכת בתוספים של Google Workspace. אם צוין עבור תוסף, הכרטיס כולו יוסר ולא יוצג דבר ללקוח.

OpenAs

כשפעולה OnClick פותחת קישור, הלקוח יכול לפתוח אותו כחלון בגודל מלא (אם זו המסגרת שבה משתמש הלקוח) או כשכבת-על (כמו חלון קופץ). ההטמעה תלויה ביכולות של פלטפורמת הלקוח, ויכול להיות שהמערכת תתעלם מהערך שנבחר אם הלקוח לא תומך בה. FULL_SIZE נתמך על ידי כל הלקוחות.

יש תמיכה בתוספים של Google Workspace, אבל לא באפליקציות של Google Chat.

טיפוסים בני מנייה (enum)
FULL_SIZE הקישור נפתח כחלון בגודל מלא (אם זו המסגרת שבה משתמש הלקוח).
OVERLAY הקישור נפתח כשכבת-על, כמו חלון קופץ.

בסגירה

מה הלקוח עושה כשסוגרים קישור שנפתח על ידי פעולה OnClick.

ההטמעה תלויה ביכולות של פלטפורמת הלקוח. לדוגמה, דפדפן אינטרנט עשוי לפתוח קישור בחלון קופץ עם handler של OnClose.

אם הוגדרו גם רכיבי handler של OnOpen וגם OnClose ופלטפורמת הלקוח לא יכולה לתמוך בשני הערכים, OnClose יקבל עדיפות.

יש תמיכה בתוספים של Google Workspace, אבל לא באפליקציות של Google Chat.

טיפוסים בני מנייה (enum)
NOTHING ערך ברירת המחדל. הכרטיס לא נטען מחדש, לא קורה דבר.
RELOAD

טעינת הכרטיס מחדש אחרי שחלון הצאצא נסגר.

אם משתמשים בו בשילוב עם OpenAs.OVERLAY, חלון הצאצא משמש כתיבת דו-שיח חלוןית, והכרטיס של ההורה נחסם עד לסגירת החלון של הצאצא.

טקסט מעוצב

ווידג'ט שמציג טקסט עם קישוטים אופציונליים, כמו תווית מעל או מתחת לטקסט, סמל לפני הטקסט, ווידג'ט בחירה או לחצן אחרי הטקסט. דוגמה: טקסט מקושט באפליקציות של Google Chat.

ייצוג JSON
{
  "icon": {
    object (Icon)
  },
  "startIcon": {
    object (Icon)
  },
  "topLabel": string,
  "text": string,
  "wrapText": boolean,
  "bottomLabel": string,
  "onClick": {
    object (OnClick)
  },

  // Union field control can be only one of the following:
  "button": {
    object (Button)
  },
  "switchControl": {
    object (SwitchControl)
  },
  "endIcon": {
    object (Icon)
  }
  // End of list of possible types for union field control.
}
שדות
icon
(deprecated)

object (Icon)

הוצא משימוש לטובת startIcon.

startIcon

object (Icon)

הסמל שמוצג לפני הטקסט.

topLabel

string

הטקסט שמופיע מעל text. תמיד מקצר.

text

string

חובה. הטקסט הראשי.

תומך בעיצוב פשוט. למידע נוסף על עיצוב טקסט, תוכלו לקרוא את המאמר עיצוב טקסט באפליקציות של Google Chat ועיצוב טקסט בתוספים של Google Workspace.

wrapText

boolean

ההגדרה 'גלישת טקסט'. אם הערך הוא true, הטקסט גולש ומוצג במספר שורות. אחרת, הטקסט נחתך.

ההגדרה חלה רק על text ולא על topLabel ועל bottomLabel.

bottomLabel

string

הטקסט שמופיע מתחת ל-text. תמיד.

onClick

object (OnClick)

פעולה זו מופעלת כשמשתמשים לוחצים על topLabel או על bottomLabel.

שדה איחוד control. לחצן, מתג, תיבת סימון או תמונה שמופיעים משמאל לטקסט בווידג'ט decoratedText. control יכול להיות רק אחת מהאפשרויות הבאות:
button

object (Button)

לחצן שמשתמש יכול ללחוץ עליו כדי להפעיל פעולה.

switchControl

object (SwitchControl)

ווידג'ט מתג שמשתמש יכול ללחוץ עליו כדי לשנות את המצב שלו ולהפעיל פעולה.

endIcon

object (Icon)

סמל שמוצג אחרי הטקסט.

יש תמיכה בסמלים מובְנים ובסמלים מותאמים אישית.

סמל

סמל שמוצג בווידג'ט בכרטיס. דוגמאות לאפליקציות של Google Chat: סמל.

יש תמיכה בסמלים מובְנים ובסמלים מותאמים אישית.

ייצוג JSON
{
  "altText": string,
  "imageType": enum (ImageType),

  // Union field icons can be only one of the following:
  "knownIcon": string,
  "iconUrl": string
  // End of list of possible types for union field icons.
}
שדות
altText

string

אופציונלי. תיאור של הסמל המשמש לנגישות. אם לא צוין, ערך ברירת המחדל Button יסופק. מומלץ להגדיר תיאור מועיל שמתאר את מה שהסמל מציג, ואם רלוונטי, תיאור מועיל. לדוגמה, A user's account portrait או Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/chat.

אם הסמל מוגדר בתוך Button, altText יופיע כטקסט מסייע כשהמשתמשים מעבירים את העכבר מעל הלחצן. עם זאת, אם הלחצן מגדיר גם את text, המערכת תתעלם מה-altText של הסמל.

imageType

enum (ImageType)

סגנון החיתוך שהוחל על התמונה. במקרים מסוימים, חיתוך של CIRCLE גורם לתמונה להיות גדולה יותר מסמל מובנה.

שדה איחוד icons. הסמל שמוצג בווידג'ט שעל הכרטיס. icons יכול להיות רק אחת מהאפשרויות הבאות:
knownIcon

string

להציג את אחד מהסמלים המובנים של Google Workspace.

לדוגמה, כדי להציג סמל מטוס, צריך לציין AIRPLANE. אם מדובר באוטובוס, צריך לציין את הערך BUS.

הרשימה המלאה של הסמלים הנתמכים זמינה במאמר סמלים מובנים.

iconUrl

string

להציג סמל מותאם אישית שמתארח בכתובת URL מסוג HTTPS.

לדוגמה:

"iconUrl":
"https://developers.google.com/chat/images/quickstart-app-avatar.png"

סוגי הקבצים הנתמכים הם .png ו-.jpg.

לחצן

לחצן עם טקסט, סמל או טקסט וסמל, שהמשתמשים יכולים ללחוץ עליהם. דוגמאות לאפליקציות של Google Chat: רשימת לחצנים.

כדי להפוך תמונה ללחצן קליקבילי, צריך לציין Image (ולא ImageComponent) ולהגדיר את הפעולה onClick.

ייצוג JSON
{
  "text": string,
  "icon": {
    object (Icon)
  },
  "color": {
    object (Color)
  },
  "onClick": {
    object (OnClick)
  },
  "disabled": boolean,
  "altText": string
}
שדות
text

string

הטקסט שמוצג בתוך הלחצן.

icon

object (Icon)

תמונת הסמל. אם icon וגם text מוגדרים, הסמל יופיע לפני הטקסט.

color

object (Color)

אם המדיניות מוגדרת, הלחצן ימולא בצבע רקע אחיד וצבע הגופן ישתנה כדי לשמור על הניגודיות לצבע הרקע. לדוגמה, הגדרה של רקע כחול תגרום ככל הנראה לטקסט לבן.

אם המדיניות לא מוגדרת, רקע התמונה יהיה לבן וצבע הגופן יהיה כחול.

באדום, בירוק ובכחול, הערך של כל שדה הוא מספר float שאפשר לבטא בשתי דרכים: כמספר בין 0 ל-255 חלקי 255 (153/255), או כערך בין 0 ל-1 (0.6). 0 מייצג את היעדר צבע ו-1 או 255/255 מייצג את הנוכחות המלאה של הצבע הזה בסולם ה-RGB.

אפשר להגדיר את alpha, שקובע רמת שקיפות באמצעות המשוואה הזו:

pixel color = alpha * (this color) + (1.0 - alpha) * (background color)

עבור alpha, ערך של 1 תואם בצבע אחיד, וערך של 0 תואם לצבע שקוף לחלוטין.

לדוגמה, הצבע הבא מייצג אדום חצי שקוף:

"color": {
   "red": 1,
   "green": 0,
   "blue": 0,
   "alpha": 0.5
}
onClick

object (OnClick)

חובה. הפעולה שיש לבצע כשמשתמש לוחץ על הלחצן, כמו פתיחת היפר-קישור או הפעלת פונקציה מותאמת אישית.

disabled

boolean

אם true, הלחצן מוצג במצב לא פעיל ולא מגיב לפעולות המשתמש.

altText

string

הטקסט החלופי המשמש לנגישות.

צריך להגדיר טקסט תיאורי שמאפשר למשתמשים לדעת מה הלחצן עושה. לדוגמה, אם לחצן פותח היפר-קישור, אפשר לכתוב: 'נפתח כרטיסייה חדשה בדפדפן ומנווט אל המסמכים למפתחים של Google Chat בכתובת https://developers.google.com/chat'.

צבע

צבע במרחב הצבעים RGBA. הייצוג הזה נועד לפשט את תהליך ההמרה אל ייצוגי צבע בשפות שונות על פני קומפקטיות. לדוגמה, אפשר לספק באופן טריוויאלי את השדות של הייצוג הזה לבנאי java.awt.Color ב-Java. ניתן גם לספק אותם באופן טריוויאלי לשיטת +colorWithRed:green:blue:alpha של UIColor ב-iOS. ועם מעט עבודה, אפשר לעצב אותם בקלות למחרוזת rgba() CSS ב-JavaScript.

דף העזר הזה לא כולל מידע על מרחב הצבעים המוחלט שצריך להשתמש בו כדי לפרש את ערך ה-RGB – לדוגמה, sRGB, Adobe RGB, DCI-P3 ו-BT.2020. כברירת מחדל, אפליקציות צריכות להניח את מרחב הצבעים sRGB.

במקרים שבהם צריך לקבוע שוויון צבעים, יש להתייחס להטמעות, אלא אם צוין אחרת, לשני צבעים כשווי ערך, אם כל ערכי הצבע האדום, הירוק, הכחול והאלפא נבדלים זה מזה ב-1e-5 לכל היותר.

דוגמה (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();
 }
 // ...

לדוגמה (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;
}
// ...

דוגמה (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('');
};

// ...
ייצוג JSON
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
שדות
red

number

כמות הצבע האדום בצבע כערך במרווח [0, 1].

green

number

כמות הצבע הירוק כערך במרווח [0, 1].

blue

number

כמות הצבע הכחול בצבע כערך במרווח [0, 1].

alpha

number

החלק של הצבע שיש להחיל על הפיקסל. כלומר, צבע הפיקסל הסופי מוגדר באמצעות המשוואה:

pixel color = alpha * (this color) + (1.0 - alpha) * (background color)

המשמעות היא שהערך 1.0 מייצג צבע אחיד, וערך של 0.0 מייצג צבע שקוף לחלוטין. נעשה שימוש בהודעת wrapper במקום בסקלרי צף פשוט, כדי שאפשר יהיה להבחין בין ערך ברירת מחדל לבין הערך שלא מוגדר. אם לא צוין ערך, אובייקט הצבע הזה מעובד כצבע מלא (למשל, כאילו ניתן היה להקצות ערך אלפא באופן מפורש כ-1.0).

SwitchControl

מתג בסגנון החלפת מצב או תיבת סימון בתוך ווידג'ט decoratedText.

התכונה נתמכת רק בווידג'ט decoratedText.

ייצוג JSON
{
  "name": string,
  "value": string,
  "selected": boolean,
  "onChangeAction": {
    object (Action)
  },
  "controlType": enum (ControlType)
}
שדות
name

string

השם שבו מזוהה הווידג'ט של ההחלפה באירוע של קלט טופס.

למידע נוסף על עבודה עם קלט בטופס, תוכלו לקרוא את המאמר קבלת נתוני טופס.

value

string

הערך שהוזן על ידי משתמש, שהוחזר כחלק מאירוע של קלט טופס.

למידע נוסף על עבודה עם קלט בטופס, תוכלו לקרוא את המאמר קבלת נתוני טופס.

selected

boolean

כאשר true, המתג נבחר.

onChangeAction

object (Action)

הפעולה שיש לבצע כשמצב המתג משתנה, למשל איזו פונקציה להפעיל.

controlType

enum (ControlType)

איך המתג מופיע בממשק המשתמש.

סוג בקרה

איך המתג מופיע בממשק המשתמש.

טיפוסים בני מנייה (enum)
SWITCH מתג בסגנון החלפת מצב.
CHECKBOX הוצא משימוש לטובת CHECK_BOX.
CHECK_BOX תיבת סימון.

רשימת לחצנים

רשימה של לחצנים פרוסים אופקית. דוגמאות לאפליקציות של Google Chat: רשימת לחצנים.

ייצוג JSON
{
  "buttons": [
    {
      object (Button)
    }
  ]
}
שדות
buttons[]

object (Button)

מערך של לחצנים.

קלט טקסט

שדה שבו המשתמשים יכולים להזין טקסט. תומך בהצעות ובפעולות שינוי. דוגמאות רלוונטיות לאפליקציות של Google Chat: קלט טקסט.

אפליקציות צ'אט מקבלות את הערך של הטקסט שהוזן ויכולות לעבד אותו במהלך אירועי קלט של טפסים. למידע נוסף על עבודה עם קלט בטופס, תוכלו לקרוא את המאמר קבלת נתוני טופס.

אם אתם צריכים לאסוף נתונים לא מוגדרים או מופשטים ממשתמשים, כדאי להשתמש בקלט טקסט. כדי לאסוף נתונים מוגדרים או ממוספרים ממשתמשים, צריך להשתמש בווידג'ט SelectionInput.

ייצוג JSON
{
  "name": string,
  "label": string,
  "hintText": string,
  "value": string,
  "type": enum (Type),
  "onChangeAction": {
    object (Action)
  },
  "initialSuggestions": {
    object (Suggestions)
  },
  "autoCompleteAction": {
    object (Action)
  },
  "placeholderText": string
}
שדות
name

string

השם שבו קלט הטקסט מזוהה באירוע של קלט טופס.

למידע נוסף על עבודה עם קלט בטופס, תוכלו לקרוא את המאמר קבלת נתוני טופס.

label

string

הטקסט שמופיע מעל לשדה להזנת הטקסט בממשק המשתמש.

צריך לציין טקסט שעוזר למשתמש להזין את המידע הנדרש לאפליקציה. לדוגמה, אם רוצים לבקש שם של מישהו, אבל צריך לציין את שם המשפחה שלו, צריך לכתוב surname במקום name.

חובה אם לא צוין hintText. אם לא, אופציונלי.

hintText

string

טקסט שמופיע מתחת לשדה הזנת הטקסט. הטקסט הזה מיועד לעזור למשתמשים ומבקשים מהם להזין ערך מסוים. הטקסט הזה תמיד גלוי.

חובה אם לא צוין label. אם לא, אופציונלי.

value

string

הערך שהוזן על ידי משתמש, שהוחזר כחלק מאירוע של קלט טופס.

למידע נוסף על עבודה עם קלט בטופס, תוכלו לקרוא את המאמר קבלת נתוני טופס.

type

enum (Type)

איך מופיע שדה להזנת טקסט בממשק המשתמש. לדוגמה, אם השדה הוא שורה אחת או כמה שורות.

onChangeAction

object (Action)

מה לעשות במקרה של שינוי בשדה של קלט הטקסט. לדוגמה, משתמש שמוסיף שדה או מוחק טקסט.

לדוגמה, אפשר להריץ פונקציה בהתאמה אישית או לפתוח תיבת דו-שיח ב-Google Chat.

initialSuggestions

object (Suggestions)

הצעות לערכים שהמשתמשים יכולים להזין. הערכים האלה מופיעים כשמשתמשים לוחצים בתוך השדה של קלט הטקסט. בזמן שהמשתמשים מקלידים, הערכים המוצעים מסוננים באופן דינמי כדי להתאים למה שהמשתמשים הקלידו.

לדוגמה, שדה להזנת טקסט לשפת התכנות עשוי להציע Java, JavaScript, Python ו-C++. כשמשתמשים מתחילים להקליד Jav, רשימת המסננים להצגת ההצעות תציג רק Java ו-JavaScript.

ההצעות לערכים עוזרות להנחות את המשתמשים להזין ערכים שיהיו הגיוניים לאפליקציה שלכם. כשמדובר ב-JavaScript, חלק מהמשתמשים עשויים להזין javascript ואחרים java script. הצעה של JavaScript יכולה לעזור לכם לקבוע את אופן האינטראקציה של המשתמשים עם האפליקציה.

כשמוגדרת, TextInput.type היא תמיד SINGLE_LINE, גם אם היא מוגדרת MULTIPLE_LINE.

autoCompleteAction

object (Action)

אופציונלי. לציין איזו פעולה לבצע כשמוצגות הצעות למשתמשים שמקיימים אינטראקציה עם השדה של קלט הטקסט.

אם לא צוין אחרת, ההצעות מוגדרות על ידי initialSuggestions ומעובדות על ידי הלקוח.

אם צוין, האפליקציה תנקוט את הפעולה שצוינה כאן, כמו הפעלת פונקציה מותאמת אישית.

יש תמיכה בתוספים של Google Workspace, אבל לא באפליקציות של Google Chat.

placeholderText

string

טקסט שמופיע בשדה של קלט הטקסט כשהשדה ריק. השתמשו בטקסט הזה כדי לבקש מהמשתמשים להזין ערך. לדוגמה: Enter a number from 0 to 100.

יש תמיכה באפליקציות של Google Chat, אבל לא בתוספים של Google Workspace.

סוג

איך מופיע שדה להזנת טקסט בממשק המשתמש. לדוגמה, אם מדובר בשדה קלט של שורה יחידה או בקלט מרובה שורות.

אם initialSuggestions צוין, type הוא תמיד SINGLE_LINE, גם אם מוגדר MULTIPLE_LINE.

טיפוסים בני מנייה (enum)
SINGLE_LINE בשדה להזנת טקסט יש גובה קבוע של שורה אחת.
MULTIPLE_LINE בשדה להזנת טקסט יש גובה קבוע של כמה שורות.

הצעות

הצעות לערכים שהמשתמשים יכולים להזין. הערכים האלה מופיעים כשמשתמשים לוחצים בתוך השדה של קלט הטקסט. בזמן שהמשתמשים מקלידים, הערכים המוצעים מסוננים באופן דינמי כדי להתאים למה שהמשתמשים הקלידו.

לדוגמה, שדה להזנת טקסט לשפת התכנות עשוי להציע Java, JavaScript, Python ו-C++. כשמשתמשים מתחילים להקליד Jav, רשימת המסננים להצגת Java ו-JavaScript.

ההצעות לערכים עוזרות להנחות את המשתמשים להזין ערכים שיהיו הגיוניים לאפליקציה שלכם. כשמדובר ב-JavaScript, חלק מהמשתמשים עשויים להזין javascript ואחרים java script. הצעה של JavaScript יכולה לעזור לכם לקבוע את אופן האינטראקציה של המשתמשים עם האפליקציה.

כשמוגדרת, TextInput.type היא תמיד SINGLE_LINE, גם אם היא מוגדרת MULTIPLE_LINE.

ייצוג JSON
{
  "items": [
    {
      object (SuggestionItem)
    }
  ]
}
שדות
items[]

object (SuggestionItem)

רשימת הצעות המשמשות להמלצות של השלמה אוטומטית בשדות של קלט טקסט.

פריט הצעה

הצעה אחת לערך שמשתמשים יכולים להזין בשדה של קלט טקסט.

ייצוג JSON
{

  // Union field content can be only one of the following:
  "text": string
  // End of list of possible types for union field content.
}
שדות

שדה איחוד content.

content יכול להיות רק אחת מהאפשרויות הבאות:

text

string

הערך של קלט מוצע בשדה של קלט טקסט. הערך הזה זהה למה שהמשתמשים מזינים בעצמם.

קלט הבחירה

ווידג'ט שיוצר פריט אחד או יותר בממשק המשתמש, שהמשתמשים יכולים לבחור. לדוגמה, תפריט נפתח או תיבות סימון. אתם יכולים להשתמש בווידג'ט הזה כדי לאסוף נתונים שניתן לחזות או לספור אותם. דוגמאות רלוונטיות לאפליקציות של Google Chat: קלט הבחירה.

אפליקציות צ'אט יכולות לעבד את הערך של פריטים שהמשתמשים בוחרים או מזינים. למידע נוסף על עבודה עם קלט בטופס, תוכלו לקרוא את המאמר קבלת נתוני טופס.

כדי לאסוף נתונים לא מוגדרים או מופשטים ממשתמשים, אפשר להשתמש בווידג'ט TextInput.

ייצוג JSON
{
  "name": string,
  "label": string,
  "type": enum (SelectionType),
  "items": [
    {
      object (SelectionItem)
    }
  ],
  "onChangeAction": {
    object (Action)
  },
  "multiSelectMaxSelectedItems": integer,
  "multiSelectMinQueryLength": integer,

  // Union field multi_select_data_source can be only one of the following:
  "externalDataSource": {
    object (Action)
  },
  "platformDataSource": {
    object (PlatformDataSource)
  }
  // End of list of possible types for union field multi_select_data_source.
}
שדות
name

string

השם שמשמש לזיהוי קלט הבחירה באירוע של קלט טופס.

למידע נוסף על עבודה עם קלט בטופס, תוכלו לקרוא את המאמר קבלת נתוני טופס.

label

string

הטקסט שמופיע מעל לשדה להזנת קלט הבחירה בממשק המשתמש.

צריך לציין טקסט שעוזר למשתמש להזין את המידע הנדרש לאפליקציה. לדוגמה, אם משתמשים בוחרים את הדחיפות של כרטיס עבודה מהתפריט הנפתח, התווית יכולה להיות 'דחיפות' או 'בחירת דחיפות'.

type

enum (SelectionType)

סוג הפריטים שמוצגים למשתמשים בווידג'ט SelectionInput. סוגי הבחירה תומכים בסוגים שונים של אינטראקציות. לדוגמה, משתמשים יכולים לבחור תיבת סימון אחת או יותר, אבל הם יכולים לבחור רק ערך אחד מתפריט נפתח.

items[]

object (SelectionItem)

מערך של פריטים שאפשר לבחור. לדוגמה, מערך של לחצני בחירה או תיבות סימון. תמיכה ב-100 פריטים לכל היותר.

onChangeAction

object (Action)

אם צוין אחרת, הטופס יישלח כשהבחירה תשתנה. אם לא צוין לחצן, עליך לציין לחצן נפרד לשליחת הטופס.

למידע נוסף על עבודה עם קלט בטופס, תוכלו לקרוא את המאמר קבלת נתוני טופס.

multiSelectMaxSelectedItems

integer

בתפריטים של בחירה מרובה, זהו מספר הפריטים המקסימלי שמשתמש יכול לבחור. הערך המינימלי הוא פריט אחד. אם לא הוגדר, יש להגדיר 3 פריטים.

multiSelectMinQueryLength

integer

בתפריטים של בחירה מרובה, מספר תווי הטקסט שמשתמש מזין לפני השלמה אוטומטית של שאילתות באפליקציית Chat, ומציג הצעות לפריטים בכרטיס.

אם לא צוין, יש להגדיר ל-0 תווים במקורות נתונים סטטיים ול-3 תווים במקורות נתונים חיצוניים.

שדה איחוד multi_select_data_source. רק אפליקציות צ'אט. בתפריט של בחירה מרובה, זהו הסוג של מקור הנתונים. multi_select_data_source יכול להיות רק אחת מהאפשרויות הבאות:
externalDataSource

object (Action)

מקור נתונים חיצוני, כמו בסיס נתונים יחסי.

platformDataSource

object (PlatformDataSource)

מקור נתונים מאפליקציה לאירוח של Google Workspace.

סוג הבחירה

פורמט הפריטים שהמשתמשים יכולים לבחור. האפשרויות השונות תומכות בסוגים שונים של אינטראקציות. לדוגמה, משתמשים יכולים לסמן כמה תיבות סימון, אבל יכולים לבחור רק פריט אחד מתפריט נפתח.

כל קלט של בחירה תומך בסוג אחד של בחירה. למשל, אין תמיכה בשילוב של תיבות סימון ומתגים.

טיפוסים בני מנייה (enum)
CHECK_BOX קבוצה של תיבות סימון. המשתמשים יכולים לבחור תיבת סימון אחת או יותר.
RADIO_BUTTON קבוצת לחצני בחירה. משתמשים יכולים לבחור לחצן בחירה אחד.
SWITCH קבוצת מתגים. המשתמשים יכולים להפעיל מתג אחד או יותר.
DROPDOWN תפריט נפתח. המשתמשים יכולים לבחור פריט אחד מהתפריט.
MULTI_SELECT

יש תמיכה באפליקציות Chat, אבל לא בתוספים של Google Workspace.

תפריט של בחירה מרובה לנתונים סטטיים או דינמיים. בסרגל התפריטים, המשתמשים בוחרים אפשרות אחת או יותר. המשתמשים יכולים גם להזין ערכים כדי לאכלס נתונים דינמיים. לדוגמה, משתמשים יכולים להתחיל להקליד את השם של מרחב משותף ב-Google Chat, והווידג'ט מציע באופן אוטומטי את המרחב המשותף.

כדי לאכלס פריטים בתפריט של בחירה מרובה, אפשר להשתמש באחד מהסוגים הבאים של מקורות נתונים:

  • נתונים סטטיים: הפריטים מצוינים כאובייקטים מסוג SelectionItem בווידג'ט. עד 100 פריטים.
  • נתוני Google Workspace: הפריטים מאוכלסים באמצעות נתונים מאפליקציית Google Workspace, כמו משתמשים או מרחבים משותפים ב-Google Chat.
  • נתונים חיצוניים: הפריטים מאוכלסים ממקור נתונים חיצוני דינמי.

בדף הווידג'ט SelectionInput אפשר לראות דוגמאות להטמעה של תפריטים של בחירה מרובה .

פריט הבחירה

פריט שמשתמשים יכולים לבחור בקלט בחירה, כמו תיבת סימון או מתג.

ייצוג JSON
{
  "text": string,
  "value": string,
  "selected": boolean,
  "startIconUri": string,
  "bottomText": string
}
שדות
text

string

הטקסט שמזהה או מתאר את הפריט למשתמשים.

value

string

הערך שמשויך לפריט הזה. הלקוח צריך להשתמש בו כערך קלט בטופס.

למידע נוסף על עבודה עם קלט בטופס, תוכלו לקרוא את המאמר קבלת נתוני טופס.

selected

boolean

אם הפריט נבחר כברירת מחדל. אם קלט הבחירה מקבל ערך אחד בלבד (למשל עבור לחצני בחירה או תפריט נפתח), יש להגדיר את השדה הזה לפריט אחד בלבד.

startIconUri

string

בתפריטים של בחירה מרובה, כתובת ה-URL של הסמל שמוצג לצד השדה text של הפריט. יש תמיכה בקובצי PNG ו-JPEG. חייבת להיות כתובת URL של HTTPS. לדוגמה: https://developers.google.com/chat/images/quickstart-app-avatar.png.

bottomText

string

בתפריטים של בחירה מרובה, תיאור טקסט או תווית שמוצגים מתחת לשדה text של הפריט.

PlatformDataSource – מקור נתונים

רק אפליקציות צ'אט. לווידג'ט של SelectionInput שמשתמש בתפריט עם אפשרויות בחירה מרובות, הנתונים מאפליקציה מארחת של Google Workspace. משמש לאכלוס הפריטים בתפריט הבחירה המרובת.

ייצוג JSON
{

  // Union field data_source can be only one of the following:
  "commonDataSource": enum (CommonDataSource),
  "hostAppDataSource": {
    object (HostAppDataSourceMarkup)
  }
  // End of list of possible types for union field data_source.
}
שדות
שדה איחוד data_source. מקור הנתונים. data_source יכול להיות רק אחת מהאפשרויות הבאות:
commonDataSource

enum (CommonDataSource)

לווידג'ט של SelectionInput שמשתמש בתפריט עם אפשרויות בחירה מרובות, מקור נתונים שמשותף לכל האפליקציות המארחות ב-Google Workspace, כמו משתמשים בארגון ב-Google Workspace.

hostAppDataSource

object (HostAppDataSourceMarkup)

מקור נתונים שייחודי לאפליקציה מארחת של Google Workspace, כמו אימיילים ב-Gmail, אירועים ביומן Google או הודעות ב-Google Chat.

CommonDataSource

רק אפליקציות צ'אט. מקור נתונים שמשותף לכל האפליקציות המארחות של Google Workspace.

טיפוסים בני מנייה (enum)
UNKNOWN ערך ברירת המחדל. אין להשתמש בו.
USER

רשימת המשתמשים סופקה על ידי אפליקציית האירוח של Google Workspace. לדוגמה: כדי לקבל משתמשים מ-Google Chat, תוכלו להשתמש בשם המשאב של המשתמש.

פורמט: משתמשים/{user}

HostAppDataSourceMarkup

רק אפליקציות צ'אט. לווידג'ט של SelectionInput שמשתמש בתפריט בחירה מרובה, מקור נתונים מאפליקציית מארח של Google Workspace.

ייצוג JSON
{

  // Union field data_source can be only one of the following:
  "chatDataSource": {
    object (ChatClientDataSourceMarkup)
  }
  // End of list of possible types for union field data_source.
}
שדות
שדה איחוד data_source. אפליקציית Google Workspace שמקורות נתונים עבור תפריט של אפשרויות בחירה מרובות. data_source יכול להיות רק אחת מהאפשרויות הבאות:
chatDataSource

object (ChatClientDataSourceMarkup)

מקור הנתונים הוא Google Chat.

ChatClientDataSourceMarkup

רק אפליקציות צ'אט. לווידג'ט של SelectionInput שמשתמש בתפריט בחירה מרובה, מקור נתונים מ-Google Chat. לדוגמה, רשימה של מרחבים משותפים ב-Google Chat שהמשתמש חבר בהם.

ייצוג JSON
{

  // Union field source can be only one of the following:
  "spaceDataSource": {
    object (SpaceDataSource)
  }
  // End of list of possible types for union field source.
}
שדות
שדה איחוד source. מקור הנתונים של Google Chat. source יכול להיות רק אחת מהאפשרויות הבאות:
spaceDataSource

object (SpaceDataSource)

מקור נתונים שמייצג מרחב משותף ב-Google Chat.

פורמט: רווחים/{רווח}

מקור הנתונים של SpaceData

מקור נתונים שמייצג מרחב משותף ב-Google Chat.

פורמט: רווחים/{רווח}

ייצוג JSON
{
  "defaultToCurrentSpace": boolean
}
שדות
defaultToCurrentSpace

boolean

כשמשתמשים ב-true, המרחב המשותף של הכרטיס ב-Google Chat הוא ברירת המחדל. ערך ברירת המחדל הוא false.

DateTimeChooseer

מאפשרת למשתמשים להזין תאריך, שעה או תאריך ושעה. לדוגמה, אפשר להיכנס לכלי לבחירת תאריך ושעה כדי לראות דוגמאות באפליקציות של Google Chat.

המשתמשים יכולים להזין טקסט או להשתמש בבורר כדי לבחור תאריכים ושעות. אם המשתמשים מזינים תאריך או שעה לא חוקיים, הבורר מציג שגיאה שמבקשת מהמשתמשים להזין את המידע כראוי.

ייצוג JSON
{
  "name": string,
  "label": string,
  "type": enum (DateTimePickerType),
  "valueMsEpoch": string,
  "timezoneOffsetDate": integer,
  "onChangeAction": {
    object (Action)
  }
}
שדות
name

string

השם שבו המאפיין DateTimePicker מזוהה באירוע של קלט טופס.

למידע נוסף על עבודה עם קלט בטופס, תוכלו לקרוא את המאמר קבלת נתוני טופס.

label

string

טקסט שמבקש מהמשתמשים להזין תאריך, שעה או תאריך ושעה. לדוגמה, אם משתמשים קובעים תור או פגישה, יש להשתמש בתווית כמו Appointment date או Appointment date and time.

type

enum (DateTimePickerType)

האם הווידג'ט תומך בהזנת תאריך, שעה או תאריך ושעה.

valueMsEpoch

string (int64 format)

ערך ברירת המחדל שמוצג בווידג'ט, באלפיות השנייה מאז זמן מערכת של Unix.

ציון הערך בהתאם לסוג הבוחר ( DateTimePickerType):

  • DATE_AND_TIME : תאריך ושעה קלנדריים לפי שעון UTC. לדוגמה, כדי לייצג את התאריך 1 בינואר 2023 בשעה 12:00 לפי שעון UTC, מציינים את הערך 1672574400000.
  • DATE_ONLY : תאריך קלנדרי בשעה 00:00:00 (UTC). לדוגמה, כדי לייצג את 1 בינואר 2023, משתמשים בערך 1672531200000.
  • TIME_ONLY : שעה לפי שעון UTC. לדוגמה, כדי לייצג 12:00, משתמשים ב- 43200000 (או ב-12 * 60 * 60 * 1000).
timezoneOffsetDate

integer

המספר שמייצג את הפרש השעות בין אזור הזמן לפי שעון UTC, בדקות. אם המדיניות מוגדרת, הערך valueMsEpoch מוצג באזור הזמן שצוין. אם הערך לא מוגדר, ברירת המחדל היא הגדרת אזור הזמן של המשתמש.

onChangeAction

object (Action)

מופעל כשהמשתמש לוחץ על Save או על Clear בממשק של DateTimePicker.

DateTimeChooseerType

הפורמט של התאריך והשעה בווידג'ט DateTimePicker. קובעת אם המשתמשים יכולים להזין תאריך, שעה או שניהם.

טיפוסים בני מנייה (enum)
DATE_AND_TIME המשתמשים מזינים תאריך ושעה.
DATE_ONLY המשתמשים מזינים תאריך.
TIME_ONLY המשתמשים מזינים שעה.

קו מפריד

אין שדות בסוג הזה.

הצגת קו מפריד בין הווידג'טים כקו אופקי. דוגמאות רלוונטיות לאפליקציות של Google Chat: מפריד.

לדוגמה, קובץ ה-JSON הבא יוצר מחיצה:

"divider": {}

תצוגת רשת

הצגת רשת עם אוסף של פריטים. הפריטים יכולים לכלול רק טקסט או תמונות. אם רוצים להוסיף עמודות רספונסיביות, או כדי לכלול יותר טקסט או תמונות, צריך להשתמש בערך Columns. דוגמאות רלוונטיות לאפליקציות של Google Chat: משבצות.

רשת תומכת בכל מספר של עמודות ופריטים. מספר השורות נקבע לפי הפריטים חלקי העמודות. רשת שמכילה 10 פריטים ו-2 עמודות מכילה 5 שורות. רשת שמכילה 11 פריטים ו-2 עמודות מכילה 6 שורות.

לדוגמה, קובץ ה-JSON הבא יוצר רשת של שתי עמודות עם פריט אחד:

"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"
    }
  }
}
ייצוג JSON
{
  "title": string,
  "items": [
    {
      object (GridItem)
    }
  ],
  "borderStyle": {
    object (BorderStyle)
  },
  "columnCount": integer,
  "onClick": {
    object (OnClick)
  }
}
שדות
title

string

הטקסט שיוצג בכותרת הרשת.

items[]

object (GridItem)

הפריטים שיוצגו ברשת.

borderStyle

object (BorderStyle)

סגנון הגבול שיש להחיל על כל פריט ברשת.

columnCount

integer

מספר העמודות שיוצגו ברשת. המערכת תשתמש בערך ברירת מחדל אם השדה הזה לא צוין, וערך ברירת המחדל הזה ישתנה בהתאם למיקום שבו תוצג הרשת (תיבת דו-שיח לעומת רשת נלווית).

onClick

object (OnClick)

כל פריט ברשת עושה שימוש חוזר בקריאה החוזרת, אבל המזהה והאינדקס של הפריט ברשימת הפריטים נוספו לפרמטרים של הקריאה החוזרת.

פריט רשת

מייצג פריט בפריסת רשת. פריטים יכולים להכיל טקסט, תמונה או שניהם.

ייצוג JSON
{
  "id": string,
  "image": {
    object (ImageComponent)
  },
  "title": string,
  "subtitle": string,
  "layout": enum (GridItemLayout)
}
שדות
id

string

מזהה שצוין על ידי המשתמש עבור פריט הרשת הזה. המזהה הזה מוחזר לפרמטרים של הקריאה החוזרת (callback) מסוג onClick ברשת ההורה.

image

object (ImageComponent)

התמונה שמוצגת בפריט הרשת.

title

string

השם של הפריט ברשת.

subtitle

string

כותרת המשנה של הפריט לרשת.

layout

enum (GridItemLayout)

הפריסה שבה יש להשתמש לפריט הרשת.

רכיב תמונה

תמונה שמייצגת תמונה.

ייצוג JSON
{
  "imageUri": string,
  "altText": string,
  "cropStyle": {
    object (ImageCropStyle)
  },
  "borderStyle": {
    object (BorderStyle)
  }
}
שדות
imageUri

string

כתובת ה-URL של התמונה.

altText

string

תווית הנגישות של התמונה.

cropStyle

object (ImageCropStyle)

סגנון החיתוך שצריך להחיל על התמונה.

borderStyle

object (BorderStyle)

סגנון הגבול שיש להחיל על התמונה.

ImageCropStyle (סגנון תמונה חיתוך)

מייצג את סגנון החיתוך המוחל על תמונה.

לדוגמה, כך מגדירים יחס גובה-רוחב של 16:9:

cropStyle {
 "type": "RECTANGLE_CUSTOM",
 "aspectRatio": 16/9
}
ייצוג JSON
{
  "type": enum (ImageCropType),
  "aspectRatio": number
}
שדות
type

enum (ImageCropType)

סוג החיתוך.

aspectRatio

number

יחס הגובה-רוחב שבו יש להשתמש אם סוג החיתוך הוא RECTANGLE_CUSTOM.

לדוגמה, כך מגדירים יחס גובה-רוחב של 16:9:

cropStyle {
 "type": "RECTANGLE_CUSTOM",
 "aspectRatio": 16/9
}

סוג תמונה חתוכה

מייצג את סגנון החיתוך המוחל על תמונה.

טיפוסים בני מנייה (enum)
IMAGE_CROP_TYPE_UNSPECIFIED אין להשתמש בו. לא צוינה.
SQUARE ערך ברירת המחדל. מחיל חיתוך בצורת ריבוע.
CIRCLE יוצר חיתוך עגול.
RECTANGLE_CUSTOM יוצר חיתוך מלבני עם יחס גובה-רוחב מותאם אישית. מגדירים את יחס הגובה-רוחב המותאם אישית עם aspectRatio.
RECTANGLE_4_3 יוצר חיתוך מלבני עם יחס גובה-רוחב של 4:3.

סגנון גבול

אפשרויות הסגנון לשוליים של כרטיס או ווידג'ט, כולל סוג הגבול והצבע.

ייצוג JSON
{
  "type": enum (BorderType),
  "strokeColor": {
    object (Color)
  },
  "cornerRadius": integer
}
שדות
type

enum (BorderType)

סוג הגבול.

strokeColor

object (Color)

הצבעים שבהם יש להשתמש כשהסוג הוא BORDER_TYPE_STROKE.

cornerRadius

integer

רדיוס הפינה של הגבול.

סוג גבול

מייצג את סוגי הגבולות שהוחלו על ווידג'טים.

טיפוסים בני מנייה (enum)
BORDER_TYPE_UNSPECIFIED אין להשתמש בו. לא צוינה.
NO_BORDER ערך ברירת המחדל. ללא גבול.
STROKE קווי מתאר.

פריסת GridItemLayout

השדה הזה מייצג את אפשרויות הפריסה השונות שזמינות לפריט בתצוגת רשת.

טיפוסים בני מנייה (enum)
GRID_ITEM_LAYOUT_UNSPECIFIED אין להשתמש בו. לא צוינה.
TEXT_BELOW הכותרת וכותרת המשנה מוצגות מתחת לתמונה של הפריט ברשת.
TEXT_ABOVE הכותרת וכותרת המשנה מוצגות מעל לתמונה של הפריט ברשת.

עמודות

בווידג'ט Columns מוצגות עד 2 עמודות בהודעה או בתיבת הדו-שיח בכרטיס. ניתן להוסיף ווידג'טים לכל עמודה. הווידג'טים מופיעים לפי הסדר שבו צוינו. דוגמאות רלוונטיות לאפליקציות של Google Chat: עמודות.

הגובה של כל עמודה נקבע על ידי העמודה הגבוהה יותר. לדוגמה, אם העמודה הראשונה גבוהה מהעמודה השנייה, לשתי העמודות יהיה גובה של העמודה הראשונה. מאחר שכל עמודה יכולה להכיל מספר שונה של ווידג'טים, לא ניתן להגדיר שורות או ליישר ווידג'טים בין העמודות.

העמודות מוצגות זו לצד זו. אפשר להתאים אישית את הרוחב של כל עמודה באמצעות השדה HorizontalSizeStyle. אם רוחב המסך של המשתמש צר מדי, העמודה השנייה תגלוש מתחת לעמודה הראשונה:

  • באינטרנט, העמודה השנייה גולשת אם רוחב המסך קטן מ-480 פיקסלים או שווה לו.
  • במכשירי iOS, העמודה השנייה גולשת אם רוחב המסך קטן מ-300 נק' או שווה לו.
  • במכשירי Android, העמודה השנייה גולשת אם רוחב המסך קטן מ-320dp או שווה לו.

כדי לכלול יותר מ-2 עמודות או כדי להשתמש בשורות, צריך להשתמש בווידג'ט Grid.

יש תמיכה באפליקציות Chat, אבל לא בתוספים של Google Workspace.

ייצוג JSON
{
  "columnItems": [
    {
      object (Column)
    }
  ]
}
שדות
columnItems[]

object (Column)

מערך של עמודות. אפשר לכלול עד 2 עמודות בכרטיס או בתיבת דו-שיח.

עמודה

עמודה.

ייצוג JSON
{
  "horizontalSizeStyle": enum (HorizontalSizeStyle),
  "horizontalAlignment": enum (HorizontalAlignment),
  "verticalAlignment": enum (VerticalAlignment),
  "widgets": [
    {
      object (Widgets)
    }
  ]
}
שדות
horizontalSizeStyle

enum (HorizontalSizeStyle)

קובעת איך עמודה ממלאת את רוחב הכרטיס.

horizontalAlignment

enum (HorizontalAlignment)

קובעת אם הווידג'טים מיושרים לשמאל, לימין או למרכז של עמודה.

verticalAlignment

enum (VerticalAlignment)

קובעת אם הווידג'טים מיושרים לחלק העליון, לתחתית או למרכז של העמודה.

widgets[]

object (Widgets)

מערך של ווידג'טים כלול בעמודה. הווידג'טים מופיעים לפי סדר ציינתם.

HorizontalSizeStyle

קובעת איך עמודה ממלאת את רוחב הכרטיס. הרוחב של כל עמודה תלוי גם ב-HorizontalSizeStyle וגם ברוחב הווידג'טים של העמודה.

טיפוסים בני מנייה (enum)
HORIZONTAL_SIZE_STYLE_UNSPECIFIED אין להשתמש בו. לא צוינה.
FILL_AVAILABLE_SPACE ערך ברירת המחדל. העמודה ממלאת את השטח הזמין, עד 70% מרוחב הכרטיס. אם בשתי העמודות מוגדר הערך FILL_AVAILABLE_SPACE, כל עמודה תמלא 50% מהשטח.
FILL_MINIMUM_SPACE העמודה ממלאת את השטח המינימלי האפשרי ולא יותר מ-30% מרוחב הכרטיס.

יישור אופקי

קובעת אם הווידג'טים מיושרים לשמאל, לימין או למרכז של עמודה.

טיפוסים בני מנייה (enum)
HORIZONTAL_ALIGNMENT_UNSPECIFIED אין להשתמש בו. לא צוינה.
START ערך ברירת המחדל. יישור ווידג'טים למיקום ההתחלה של העמודה. בפריסות משמאל לימין, יישור לשמאל. בפריסות מימין לשמאל, יישור לימין.
CENTER יישור הווידג'טים למרכז העמודה.
END יישור ווידג'טים למיקום הסיום של העמודה. בפריסות משמאל לימין, יישור הווידג'טים לימין. בפריסות מימין לשמאל, יישור ווידג'טים לשמאל.

יישור אנכי

קובעת אם הווידג'טים מיושרים לחלק העליון, לתחתית או למרכז של העמודה.

טיפוסים בני מנייה (enum)
VERTICAL_ALIGNMENT_UNSPECIFIED אין להשתמש בו. לא צוינה.
CENTER ערך ברירת המחדל. יישור ווידג'טים למרכז העמודה.
TOP יישור ווידג'טים לחלק העליון של עמודה.
BOTTOM יישור ווידג'טים לחלק התחתון של עמודה.

ווידג'טים

הווידג'טים הנתמכים שניתן לכלול בעמודה.

ייצוג JSON
{

  // Union field data can be only one of the following:
  "textParagraph": {
    object (TextParagraph)
  },
  "image": {
    object (Image)
  },
  "decoratedText": {
    object (DecoratedText)
  },
  "buttonList": {
    object (ButtonList)
  },
  "textInput": {
    object (TextInput)
  },
  "selectionInput": {
    object (SelectionInput)
  },
  "dateTimePicker": {
    object (DateTimePicker)
  }
  // End of list of possible types for union field data.
}
שדות

שדה איחוד data.

data יכול להיות רק אחת מהאפשרויות הבאות:

textParagraph

object (TextParagraph)

הווידג'ט TextParagraph.

image

object (Image)

הווידג'ט Image.

decoratedText

object (DecoratedText)

הווידג'ט DecoratedText.

buttonList

object (ButtonList)

הווידג'ט ButtonList.

textInput

object (TextInput)

הווידג'ט TextInput.

selectionInput

object (SelectionInput)

הווידג'ט SelectionInput.

dateTimePicker

object (DateTimePicker)

הווידג'ט DateTimePicker.

סגנון חילוק

סגנון הקו המפריד של כרטיס. משמש כרגע רק להפרדה בין חלקים בכרטיס.

טיפוסים בני מנייה (enum)
DIVIDER_STYLE_UNSPECIFIED אין להשתמש בו. לא צוינה.
SOLID_DIVIDER אפשרות ברירת המחדל. יוצרים הפרדה מלאה בין הקטעים.
NO_DIVIDER אם המדיניות מוגדרת, לא יוצג קו מפריד בין קטעים.

פעולה בכרטיס

פעולה בכרטיס היא הפעולה שמשויכת לכרטיס. לדוגמה, כרטיס חשבונית עשוי לכלול פעולות כמו מחיקת חשבונית, חשבונית באימייל או פתיחת החשבונית בדפדפן.

ההגדרה הזו לא נתמכת באפליקציות צ'אט.

ייצוג JSON
{
  "actionLabel": string,
  "onClick": {
    object (OnClick)
  }
}
שדות
actionLabel

string

התווית שמוצגת כפריט בתפריט הפעולות.

onClick

object (OnClick)

הפעולה onClick לפעולה הזו.

CardFixedFooter

כותרת תחתונה קבועה (במיקום קבוע) שמופיעה בחלק התחתון של הכרטיס. דוגמאות רלוונטיות לאפליקציות של Google Chat: בכותרת התחתונה של הכרטיס.

הגדרת fixedFooter בלי לציין primaryButton או secondaryButton גורמת לשגיאה.

ההגדרה הזו נתמכת בתוספים ל-Google Workspace ובאפליקציות צ'אט. באפליקציות Chat אפשר להשתמש בכותרות תחתונות קבועות בתיבות הדו-שיח, אבל לא בהודעות בכרטיס.

ייצוג JSON
{
  "primaryButton": {
    object (Button)
  },
  "secondaryButton": {
    object (Button)
  }
}
שדות
primaryButton

object (Button)

הלחצן הראשי בכותרת התחתונה הקבועה. הלחצן חייב להיות לחצן טקסט עם טקסט וצבעים.

secondaryButton

object (Button)

הלחצן המשני בכותרת התחתונה הקבועה. הלחצן חייב להיות לחצן טקסט עם טקסט וצבעים. אם secondaryButton מוגדר, צריך להגדיר גם את primaryButton.

סגנון תצוגה

התוספים של Google Workspace קובעים איך הכרטיס יוצג.

ההגדרה הזו לא נתמכת באפליקציות צ'אט.

טיפוסים בני מנייה (enum)
DISPLAY_STYLE_UNSPECIFIED אין להשתמש בו. לא צוינה.
PEEK הכותרת של הכרטיס מופיעה בחלק התחתון של סרגל הצד, מכסה חלקית את הכרטיס העליון הנוכחי במקבץ. לחיצה על הכותרת מקפיץ את הכרטיס לערימת הכרטיסים. אם לכרטיס אין כותרת, המערכת תשתמש בכותרת שנוצרה.
REPLACE ערך ברירת המחדל. כדי להציג את הכרטיס, הוא מחליף את תצוגת הכרטיס העליון בערימת הכרטיסים.