可在 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));
參數
名稱 | 類型 | 說明 |
---|---|---|
requiredWidget | String | 這項動作所需的小工具名稱。 |
回攻員
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));
參數
名稱 | 類型 | 說明 |
---|---|---|
allWidgetsAreRequired | Boolean | 動作是否需要所有小工具的輸入內容。預設值為 false 。 |
回攻員
Action
:這個物件用於鏈結。
setFunctionName(functionName)
設定要呼叫的回呼函式的名稱。這是必填欄位。
參數
名稱 | 類型 | 說明 |
---|---|---|
functionName | String | 函式的名稱。您可以使用隨附程式庫中的函式,例如 Library.libFunction1 。 |
回攻員
Action
:這個物件用於鏈結。
setInteraction(interaction)
設定與使用者的互動 (僅在開啟對話方塊時)。如未指定,應用程式會照常執行 Action
,例如開啟連結或執行函式。
僅適用於 Google Chat 應用程式。不適用於 Google Workspace 外掛程式。
const action = CardService.newAction() .setFunctionName('handleDialog') .setInteraction(CardService.Interaction.OPEN_DIALOG);
參數
名稱 | 類型 | 說明 |
---|---|---|
interaction | Interaction | 要指定的互動。 |
回攻員
Action
:這個物件用於鏈結。
setLoadIndicator(loadIndicator)
setParameters(parameters)
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'));
參數
名稱 | 類型 | 說明 |
---|---|---|
persistValues | Boolean | 是否保留值。預設值為 false 。 |
回攻員
Action
:這個物件用於鏈結。