Class Action

動作

可在 UI 元素中實現互動的動作。這項操作不會直接在用戶端中執行,而是使用選用參數叫用 Apps Script 回呼函式

適用於 Google Workspace 外掛程式和 Google Chat 應用程式。

var image = CardService.newImage()
    .setOnClickAction(CardService.newAction()
        .setFunctionName("handleImageClick")
        .setParameters({imageSrc: 'carImage'}));

方法

方法傳回類型簡短說明
addRequiredWidget(requiredWidget)Action新增此動作所需的小工具名稱,才能提交有效的提交內容。
setAllWidgetsAreRequired(allWidgetsAreRequired)Action指出此動作是否需要所有小工具的輸入內容。
setFunctionName(functionName)Action設定要呼叫的回呼函式的名稱。
setInteraction(interaction)Action設定與使用者的互動 (僅在開啟對話方塊時)。
setLoadIndicator(loadIndicator)Action設定動作執行時所顯示的載入指標。
setParameters(parameters)Action允許將自訂參數傳送至回呼函式。
setPersistValues(persistValues)Action指出表單值是在動作回應更新表單的 Card 後,由用戶端的值或伺服器的值決定。

內容詳盡的說明文件

addRequiredWidget(requiredWidget)

新增此動作所需的小工具名稱,才能提交有效的提交內容。叫用此動作時,如果這份清單中的小工具沒有值,就會取消表單提交。

僅適用於 Google Chat 應用程式。不適用於 Google Workspace 外掛程式。

var textInput = CardService.newTextInput()
    .setFieldName("text_input_1")
    .setTitle("Text input title")

// Creates a footer button that requires an input from the above TextInput Widget.
var action = CardService.newAction()
    .setFunctionName("notificationCallback")
    .addRequiredWidget("text_input_1");
var fixedFooter =
      CardService
          .newFixedFooter()
          .setPrimaryButton(
              CardService
                  .newTextButton()
                  .setText("help")
                  .setOnClickAction(action));

參數

名稱類型說明
requiredWidgetString這項動作所需的小工具名稱。

回攻員

Action:這個物件用於鏈結。


setAllWidgetsAreRequired(allWidgetsAreRequired)

指出此動作是否需要所有小工具的輸入內容。

僅適用於 Google Chat 應用程式。不適用於 Google Workspace 外掛程式。

// Creates a button with an action that requires inputs from all widgets.
const button = CardService.newTextButton()
    .setText('Create notification')
    .setOnClickAction(
        CardService.newAction()
            .setAllWidgetsAreRequired(true));

參數

名稱類型說明
allWidgetsAreRequiredBoolean動作是否需要所有小工具的輸入內容。預設值為 false

回攻員

Action:這個物件用於鏈結。


setFunctionName(functionName)

設定要呼叫的回呼函式的名稱。這是必填欄位。

參數

名稱類型說明
functionNameString函式的名稱。您可以使用隨附程式庫中的函式,例如 Library.libFunction1

回攻員

Action:這個物件用於鏈結。


setInteraction(interaction)

設定與使用者的互動 (僅在開啟對話方塊時)。如未指定,應用程式會照常執行 Action,例如開啟連結或執行函式。

僅適用於 Google Chat 應用程式。不適用於 Google Workspace 外掛程式。

const action = CardService.newAction()
    .setFunctionName('handleDialog')
    .setInteraction(CardService.Interaction.OPEN_DIALOG);

參數

名稱類型說明
interactionInteraction要指定的互動。

回攻員

Action:這個物件用於鏈結。


setLoadIndicator(loadIndicator)

設定動作執行時所顯示的載入指標。

參數

名稱類型說明
loadIndicatorLoadIndicator要顯示的指標。

回攻員

Action:這個物件用於鏈結。


setParameters(parameters)

允許將自訂參數傳送至回呼函式。選用。

參數

名稱類型說明
parametersObject鍵和值都必須是字串。

回攻員

Action:這個物件用於鏈結。


setPersistValues(persistValues)

指出表單值是在動作回應更新表單的 Card 後,由用戶端的值或伺服器的值決定。設為 true 時,用戶端的值會在伺服器回應後保留。設為 false 時,伺服器值會覆寫表單值。這個變數預設為 false

保留用戶端值有助於避免在使用者進行編輯後表單意外變更的情況。舉例來說,如果使用者在提交表單後、伺服器回應之前,曾對 TextInput 進行編輯。如果值維持不變,伺服器回應更新 Card 後,使用者所做的編輯仍會保留。否則,表單值會回傳使用者原先提交表單的值。

保留用戶端值可能會幹擾指令碼清除表單欄位或覆寫表單值的功能,因此請避免為該類型功能啟用持續性。建議您針對事件使用 LoadIndicator.SPINNER,因為這樣會鎖定 UI,並在伺服器回應前禁止使用者進行編輯。或者,您可以使用 LoadIndicator.NONE,確認表單中的每個元素都有 onChange 動作。

// Creates a button with an action that persists the client's values as the on-click action.
const button = CardService.newTextButton()
    .setText('Create notification')
    .setOnClickAction(
        CardService.newAction()
            .setPersistValues(true)
            .setFunctionName('functionName'));

參數

名稱類型說明
persistValuesBoolean是否保留值。預設值為 false

回攻員

Action:這個物件用於鏈結。

已淘汰的方法