Class Action

動作

可在 UI 元素中啟用互動功能的動作。這項動作並非直接在用戶端上執行,而是會使用選用參數呼叫 Apps Script 回呼函式

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

const 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 外掛程式。

const textInput = CardService.newTextInput()
                      .setFieldName('text_input_1')
                      .setTitle('Text input title');

// Creates a footer button that requires an input from the above TextInput
// Widget.
const action = CardService.newAction()
                   .setFunctionName('notificationCallback')
                   .addRequiredWidget('text_input_1');
const 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:這個物件用於鏈結。

已淘汰的方法