DialogContext class
與特定 DialogSet相關的目前對話方塊回合內容。
備註
這包括回合內容、對話方塊集的相關資訊,以及對話堆疊的狀態。
從集合中對話方塊外部的程式碼,使用 DialogSet.createCoNtext 來建立對話方塊內容。 然後使用對話方塊內容的方法來管理集合中的對話進度。
當您實作對話方塊時,對話方塊內容是可供覆寫或實作的各種方法使用的參數。
例如:
const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();
建構函式
Dialog |
建立 DialogCoNtext 類別的新實例。 |
Dialog |
建立 DialogCoNtext 類別的新實例。 |
屬性
active |
|
child | |
context | 取得回合的內容物件。 |
dialog |
|
dialogs | 取得可以直接從這個內容呼叫的對話方塊。 |
parent | 這個對話內容的父對話內容,如果這個內容沒有父系,則 |
services | 取得與這個對話方塊內容相關的服務集合。 |
stack | 取得目前的對話方塊堆疊。 |
state | 取得 DialogStateManager,其可管理所有記憶體範圍的檢視。 |
方法
begin |
啟動對話實例,並將它推送至對話堆疊。 建立對話方塊的新實例,並將它推送至堆疊。 |
cancel |
取消對話方塊堆疊上的所有對話方塊,並清除堆疊。 |
continue |
如果有的話,請傳遞此對話方塊內容至 其 Dialog.continueDialog 方法,繼續執行使用中的對話方塊。 |
emit |
搜尋具有指定識別碼的對話方塊。 |
end |
結束對話方塊,並將它從堆疊中快顯。 傳回對話方塊父系的選擇性結果。 |
find |
搜尋具有指定識別碼的對話方塊。 |
get |
在 DialogCoNtext 中取得 CultureInfo。 |
prompt(string, string | Partial<Activity> | Prompt |
協助程式函式,可簡化呼叫提示對話方塊的選項格式設定。 |
prompt(string, string | Partial<Activity> | Prompt |
協助程式函式,可簡化呼叫提示對話方塊的選項格式設定。 |
replace |
結束使用中的對話方塊,並在其位置啟動新的對話方塊。 |
reprompt |
要求使用中的對話方塊,以重新提示使用者輸入。 |
建構函式詳細資料
DialogContext(DialogSet, DialogContext, DialogState)
建立 DialogCoNtext 類別的新實例。
new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)
參數
- contextOrDC
- DialogContext
Bot 目前回合的 TurnCoNtext 物件。
- state
- DialogState
用來讀取和寫入 DialogState 至儲存體的狀態物件。
備註
傳入 DialogCoNtext 實例將會複製對話方塊內容。
DialogContext(DialogSet, TurnContext, DialogState)
建立 DialogCoNtext 類別的新實例。
new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)
參數
- contextOrDC
-
TurnContext
Bot 目前回合的 TurnCoNtext 物件。
- state
- DialogState
用來讀取和寫入 DialogState 至儲存體的狀態物件。
備註
傳入 DialogCoNtext 實例將會複製對話方塊內容。
屬性詳細資料
activeDialog
DialogInstance | undefined activeDialog
屬性值
DialogInstance | undefined
對話方塊在對話方塊堆疊頂端的狀態資訊,如果 undefined
堆疊是空的,則為 。
child
context
取得回合的內容物件。
context: TurnContext
屬性值
TurnContext
dialogManager
警告
此 API 現已淘汰。
This property serves no function.
DialogManager dialogManager
屬性值
目前的對話方塊管理員實例。 此屬性已被取代。
dialogs
parent
這個對話內容的父對話內容,如果這個內容沒有父系,則 undefined
為 。
parent: DialogContext | undefined
屬性值
DialogContext | undefined
備註
嘗試啟動對話方塊時,對話方塊內容會在對話中搜尋Dialog.id。 如果在此對話內容中找不到要啟動的對話方塊,它會在其父對話內容中搜尋,依此類推斷。
services
取得與這個對話方塊內容相關的服務集合。
services: TurnContextStateCollection
屬性值
TurnContextStateCollection
stack
state
方法詳細資料
beginDialog(string, object)
啟動對話實例,並將它推送至對話堆疊。 建立對話方塊的新實例,並將它推送至堆疊。
function beginDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
參數
- dialogId
-
string
要啟動之對話方塊的識別碼。
- options
-
object
選擇性。 當對話方塊啟動時要傳入對話方塊的引數。
傳回
Promise<DialogTurnResult>
承諾會解析為對話方塊回合結果。
備註
如果堆疊上已經有作用中的對話方塊,該對話方塊將會暫停,直到它再次成為堆疊上的頂端對話方塊為止。
傳回物件 的狀態 描述這個方法完成之後對話方塊堆疊的狀態。
如果在此對話內容或任何其上階中找不到要求的對話方塊,這個方法就會擲回例外狀況。
例如:
const result = await dc.beginDialog('greeting', { name: user.name });
另請參閱
cancelAllDialogs(boolean, string, any)
取消對話方塊堆疊上的所有對話方塊,並清除堆疊。
function cancelAllDialogs(cancelParents?: boolean, eventName?: string, eventValue?: any): Promise<DialogTurnResult>
參數
- cancelParents
-
boolean
選擇性。 如果 true
也會取消所有父對話方塊。
- eventName
-
string
選擇性。 取消對話方塊時要引發的自訂事件名稱。 這會預設為 cancelDialog。
- eventValue
-
any
選擇性。 要與自訂取消事件一起傳遞的值。
傳回
Promise<DialogTurnResult>
承諾會解析為對話方塊回合結果。
備註
這會先呼叫每個對話方塊的 Dialog.endDialog 方法,再從堆疊中移除對話方塊。
如果一開始堆疊上有任何對話方塊,則會取消傳回值的狀態;否則,它是空的。
此範例會先清除對話方塊堆疊, dc
再啟動 'bookFlight' 對話方塊。
await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');
另請參閱
continueDialog()
如果有的話,請傳遞此對話方塊內容至 其 Dialog.continueDialog 方法,繼續執行使用中的對話方塊。
function continueDialog(): Promise<DialogTurnResult>
傳回
Promise<DialogTurnResult>
承諾會解析為對話方塊回合結果。
備註
呼叫完成之後,您可以檢查回合內容的 回應 屬性,以判斷對話方塊是否傳送回復給使用者。
傳回物件 的狀態 描述這個方法完成之後對話方塊堆疊的狀態。
一般而言,您會從 Bot 的回合處理常式內呼叫此專案。
例如:
const result = await dc.continueDialog();
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.message) {
// Send fallback message
await dc.context.sendActivity(`I'm sorry. I didn't understand.`);
}
emitEvent(string, any, boolean, boolean)
搜尋具有指定識別碼的對話方塊。
function emitEvent(name: string, value?: any, bubble?: boolean, fromLeaf?: boolean): Promise<boolean>
參數
- name
-
string
所要引發事件的名稱。
- value
-
any
選擇性。 要與 事件一起傳送的值。
- bubble
-
boolean
選擇性。 旗標,控制事件是否應該在本機處理時反升至其父系。 預設值為 的值 true
。
- fromLeaf
-
boolean
選擇性。 事件是否從分葉節點發出。
傳回
Promise<boolean>
true
如果已處理事件,則為 。
備註
發出目前對話方塊的具名事件,或啟動該對話方塊的人員來處理。
endDialog(any)
結束對話方塊,並將它從堆疊中快顯。 傳回對話方塊父系的選擇性結果。
function endDialog(result?: any): Promise<DialogTurnResult>
參數
- result
-
any
選擇性。 要傳遞至父邏輯的結果。 這可能是堆疊上的下一個對話方塊,如果這是堆疊上最後一個對話方塊,則為父對話內容或 Bot 的回合處理常式。
傳回
Promise<DialogTurnResult>
承諾會解析為對話方塊回合結果。
備註
父 對話方塊是 對話堆疊上的下一個對話方塊,如果有的話。 這個方法會呼叫父系的 Dialog.resumeDialog 方法,並傳遞結束對話所傳回的結果。 如果沒有父對話方塊,回合會結束,且結果可透過傳回物件的 result 屬性提供給 Bot 使用。
傳回物件 的狀態 描述此方法完成之後的對話堆疊狀態。
一般而言,您會從特定對話的邏輯內呼叫此專案,以向對話內容發出信號,指出對話已完成、對話應該從堆疊中移除,而且父對話應該繼續。
例如:
return await dc.endDialog(returnValue);
另請參閱
findDialog(string)
搜尋具有指定識別碼的對話方塊。
function findDialog(dialogId: string): Dialog | undefined
參數
- dialogId
-
string
要搜尋之對話方塊的識別碼。
傳回
Dialog | undefined
所提供識別碼的對話方塊。
備註
如果在與此對話方塊內容相關聯的 DialogSet 中找不到要啟動的對話,它會嘗試在其父對話內容中尋找對話方塊。
另請參閱
getLocale()
在 DialogCoNtext 中取得 CultureInfo。
function getLocale(): string
傳回
string
地區設定字串。
prompt(string, string | Partial<Activity> | PromptOptions)
協助程式函式,可簡化呼叫提示對話方塊的選項格式設定。
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions): Promise<DialogTurnResult>
參數
- dialogId
-
string
要啟動之提示對話方塊的識別碼。
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
要傳送使用者的初始提示文字、要當做初始提示傳送的活動,或用來格式化提示對話方塊的物件。
傳回
Promise<DialogTurnResult>
備註
這個協助程式方法會將物件格式化為做為 options
參數,然後呼叫 beginDialog 以啟動指定的提示對話方塊。
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])
協助程式函式,可簡化呼叫提示對話方塊的選項格式設定。
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions, choices: string | Choice[]): Promise<DialogTurnResult>
參數
- dialogId
-
string
要啟動之提示對話方塊的識別碼。
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
要傳送使用者的初始提示文字、要傳送為初始提示 的活動 ,或用來格式化提示對話方塊的物件。
- choices
-
string | Choice[]
選擇性。 供使用者選擇的選項陣列,以便與 ChoicePrompt搭配使用。
傳回
Promise<DialogTurnResult>
備註
這個協助程式方法會將物件格式化為做為 options
參數,然後呼叫 beginDialog 以啟動指定的提示對話方塊。
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
replaceDialog(string, object)
結束使用中的對話方塊,並在其位置啟動新的對話方塊。
function replaceDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
參數
- dialogId
-
string
要啟動之對話方塊的識別碼。
- options
-
object
選擇性。 在啟動時要傳入新對話方塊的引數。
傳回
Promise<DialogTurnResult>
承諾會解析為對話方塊回合結果。
備註
這對於建立迴圈或重新導向至另一個對話方塊特別有用。
傳回物件 的狀態 描述此方法完成之後的對話堆疊狀態。
這個方法類似于結束目前的對話方塊,並立即開始新的對話方塊。 不過,父對話方塊不會繼續或通知。
另請參閱
repromptDialog()
要求使用中的對話方塊,以重新提示使用者輸入。
function repromptDialog(): Promise<void>
傳回
Promise<void>
備註
這會呼叫使用中對話方塊的 repromptDialog 方法。
例如:
await dc.repromptDialog();