共用方式為


DialogContext class

與特定 DialogSet相關的目前對話方塊回合內容。

備註

這包括回合內容、對話方塊集的相關資訊,以及對話堆疊的狀態。

從集合中對話方塊外部的程式碼,使用 DialogSet.createCoNtext 來建立對話方塊內容。 然後使用對話方塊內容的方法來管理集合中的對話進度。

當您實作對話方塊時,對話方塊內容是可供覆寫或實作的各種方法使用的參數。

例如:

const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();

建構函式

DialogContext(DialogSet, DialogContext, DialogState)

建立 DialogCoNtext 類別的新實例。

DialogContext(DialogSet, TurnContext, DialogState)

建立 DialogCoNtext 類別的新實例。

屬性

activeDialog
child
context

取得回合的內容物件。

dialogManager
dialogs

取得可以直接從這個內容呼叫的對話方塊。

parent

這個對話內容的父對話內容,如果這個內容沒有父系,則 undefined 為 。

services

取得與這個對話方塊內容相關的服務集合。

stack

取得目前的對話方塊堆疊。

state

取得 DialogStateManager,其可管理所有記憶體範圍的檢視。

方法

beginDialog(string, object)

啟動對話實例,並將它推送至對話堆疊。 建立對話方塊的新實例,並將它推送至堆疊。

cancelAllDialogs(boolean, string, any)

取消對話方塊堆疊上的所有對話方塊,並清除堆疊。

continueDialog()

如果有的話,請傳遞此對話方塊內容至 其 Dialog.continueDialog 方法,繼續執行使用中的對話方塊。

emitEvent(string, any, boolean, boolean)

搜尋具有指定識別碼的對話方塊。

endDialog(any)

結束對話方塊,並將它從堆疊中快顯。 傳回對話方塊父系的選擇性結果。

findDialog(string)

搜尋具有指定識別碼的對話方塊。

getLocale()

在 DialogCoNtext 中取得 CultureInfo。

prompt(string, string | Partial<Activity> | PromptOptions)

協助程式函式,可簡化呼叫提示對話方塊的選項格式設定。

prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])

協助程式函式,可簡化呼叫提示對話方塊的選項格式設定。

replaceDialog(string, object)

結束使用中的對話方塊,並在其位置啟動新的對話方塊。

repromptDialog()

要求使用中的對話方塊,以重新提示使用者輸入。

建構函式詳細資料

DialogContext(DialogSet, DialogContext, DialogState)

建立 DialogCoNtext 類別的新實例。

new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)

參數

dialogs
DialogSet

要為其建立對話內容的 DialogSet

contextOrDC
DialogContext

Bot 目前回合的 TurnCoNtext 物件。

state
DialogState

用來讀取和寫入 DialogState 至儲存體的狀態物件。

備註

傳入 DialogCoNtext 實例將會複製對話方塊內容。

DialogContext(DialogSet, TurnContext, DialogState)

建立 DialogCoNtext 類別的新實例。

new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)

參數

dialogs
DialogSet

要為其建立對話內容的 DialogSet

contextOrDC

TurnContext

Bot 目前回合的 TurnCoNtext 物件。

state
DialogState

用來讀取和寫入 DialogState 至儲存體的狀態物件。

備註

傳入 DialogCoNtext 實例將會複製對話方塊內容。

屬性詳細資料

activeDialog

DialogInstance | undefined activeDialog

屬性值

DialogInstance | undefined

對話方塊在對話方塊堆疊頂端的狀態資訊,如果 undefined 堆疊是空的,則為 。

child

DialogContext | undefined child

屬性值

DialogContext | undefined

如果使用中對話方塊是容器,則為子系的對話內容。

context

取得回合的內容物件。

context: TurnContext

屬性值

TurnContext

dialogManager

警告

此 API 現已淘汰。

This property serves no function.

DialogManager dialogManager

屬性值

目前的對話方塊管理員實例。 此屬性已被取代。

dialogs

取得可以直接從這個內容呼叫的對話方塊。

dialogs: DialogSet

屬性值

parent

這個對話內容的父對話內容,如果這個內容沒有父系,則 undefined 為 。

parent: DialogContext | undefined

屬性值

DialogContext | undefined

備註

嘗試啟動對話方塊時,對話方塊內容會在對話中搜尋Dialog.id。 如果在此對話內容中找不到要啟動的對話方塊,它會在其父對話內容中搜尋,依此類推斷。

services

取得與這個對話方塊內容相關的服務集合。

services: TurnContextStateCollection

屬性值

TurnContextStateCollection

stack

取得目前的對話方塊堆疊。

stack: DialogInstance[]

屬性值

state

取得 DialogStateManager,其可管理所有記憶體範圍的檢視。

state: DialogStateManager

屬性值

方法詳細資料

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();