Dialog 類別

  • java.lang.Object
    • com.microsoft.bot.dialogs.Dialog

public abstract class Dialog

所有對話框的基類。

欄位摘要

修飾詞與類型 欄位與描述
static final DialogTurnResult END_OF_TURN

DialogTurnResult,表示目前的對話方塊仍在使用中,並等待下一個回合的用戶輸入。

建構函式摘要

建構函式 Description
Dialog(String dialogId)

初始化 Dialog 類別的新實例。

方法摘要

修飾詞與類型 方法與描述
java.util.concurrent.CompletableFuture<DialogTurnResult> beginDialog(DialogContext dc)

啟動對話框並推送至對話堆疊時呼叫。

abstract java.util.concurrent.CompletableFuture<DialogTurnResult> beginDialog(DialogContext dc, Object options)

啟動對話框並推送至對話堆疊時呼叫。

java.util.concurrent.CompletableFuture<DialogTurnResult> continueDialog(DialogContext dc)

當對話框是 _continued_時呼叫,其中它是使用中的對話方塊,而使用者會以新的活動回復。

java.util.concurrent.CompletableFuture<java.lang.Void> endDialog(TurnContext turnContext, DialogInstance instance, DialogReason reason)

對話框結束時呼叫。

java.lang.String getId()

取得對話框的識別碼。

BotTelemetryClient getTelemetryClient()

取得要用於記錄的 BotTelemetryClient

java.lang.String getVersion()

取得代表這個對話框版本的唯一 String。

protected static java.util.concurrent.CompletableFuture<DialogTurnResult> innerRun(TurnContext turnContext, String dialogId, DialogContext dialogContext, DialogStateManagerConfiguration stateConfiguration)

使用對話框和對話框管理員共用執行的實作。

protected java.lang.String onComputeId()

計算對話框的識別碼。

java.util.concurrent.CompletableFuture<java.lang.Boolean> onDialogEvent(DialogContext dc, DialogEvent e)

使用 『DialogContext 引發事件時呼叫。發出Event()』,方法是目前的對話框或目前對話框啟動的對話方塊。

protected java.util.concurrent.CompletableFuture<java.lang.Boolean> onPostBubbleEvent(DialogContext dc, DialogEvent e)

在事件向所有家長泡泡後呼叫,但未處理。

protected java.util.concurrent.CompletableFuture<java.lang.Boolean> onPreBubbleEvent(DialogContext dc, DialogEvent e)

在事件反升至其父系之前呼叫。

java.util.concurrent.CompletableFuture<java.lang.Void> repromptDialog(TurnContext turnContext, DialogInstance instance)

當對話框應該重新提示使用者輸入時呼叫。

java.util.concurrent.CompletableFuture<DialogTurnResult> resumeDialog(DialogContext dc, DialogReason reason)

當子對話完成此回合時呼叫,將控件傳回此對話方塊。

java.util.concurrent.CompletableFuture<DialogTurnResult> resumeDialog(DialogContext dc, DialogReason reason, Object result)

當子對話完成此回合時呼叫,將控件傳回此對話方塊。

static java.util.concurrent.CompletableFuture<java.lang.Void> run(Dialog dialog, TurnContext turnContext, StatePropertyAccessor<DialogState> accessor)

建立對話堆疊並啟動對話,並將它推送至堆疊。

void setId(String withId)

設定對話框的識別碼。

void setTelemetryClient(BotTelemetryClient withTelemetryClient)

設定要用於記錄的 BotTelemetryClient

方法繼承來源 java.lang.Object

java.lang.Object.clone java.lang.Object.equals java.lang.Object.finalize java.lang.Object.getClass java.lang.Object.hashCode java.lang.Object.notify java.lang.Object.notifyAll java.lang.Object.toString java.lang.Object.wait java.lang.Object.wait java.lang.Object.wait

欄位詳細資料

END_OF_TURN

public static final DialogTurnResult END_OF_TURN

DialogTurnResult,表示目前的對話方塊仍在使用中,並等待下一個回合的用戶輸入。

建構函式詳細資料

Dialog

public Dialog(String dialogId)

初始化 Dialog 類別的新實例。

參數:

dialogId - 要指派給這個對話框的標識碼。

方法詳細資料

beginDialog

public CompletableFuture beginDialog(DialogContext dc)

啟動對話框並推送至對話堆疊時呼叫。

參數:

dc - 目前交談回合的 DialogContext

傳回:

如果工作成功,結果會指出對話在對話框處理回合之後是否仍在使用中。

beginDialog

public abstract CompletableFuture beginDialog(DialogContext dc, Object options)

啟動對話框並推送至對話堆疊時呼叫。

參數:

dc - 目前交談回合的 DialogContext
options - 要傳遞至對話框的初始資訊。

傳回:

如果工作成功,結果會指出對話在對話框處理回合之後是否仍在使用中。

continueDialog

public CompletableFuture continueDialog(DialogContext dc)

當對話框是 _continued_時呼叫,其中它是使用中的對話方塊,而使用者會以新的活動回復。

如果此方法為 *not* 覆寫,當用戶回復時,對話框會自動結束。

參數:

dc - 目前交談回合的 DialogContext

傳回:

如果工作成功,結果會指出對話在對話框處理回合之後是否仍在使用中。 結果也可能包含傳回值。

endDialog

public CompletableFuture endDialog(TurnContext turnContext, DialogInstance instance, DialogReason reason)

對話框結束時呼叫。

參數:

turnContext - 這個回合的內容物件。
instance - 與對話框堆疊上這個對話框實例相關聯的狀態資訊。
reason - 對話框結束的原因。

傳回:

代表異步作的 CompletableFuture。

getId

public String getId()

取得對話框的識別碼。

傳回:

對話框的識別碼。

getTelemetryClient

public BotTelemetryClient getTelemetryClient()

取得要用於記錄的 BotTelemetryClient

傳回:

要用於記錄的 BotTelemetryClient。

getVersion

public String getVersion()

取得代表這個對話框版本的唯一 String。 如果之間的版本變更,對話系統將會發出 DialogChanged 事件。

傳回:

唯一字串,只有在對話框變更時,才應該以應該重新啟動對話框的方式變更。

innerRun

protected static CompletableFuture innerRun(TurnContext turnContext, String dialogId, DialogContext dialogContext, DialogStateManagerConfiguration stateConfiguration)

使用 Dialog 和 DialogManager 共用執行的實作。

參數:

turnContext - turnContext。
dialogId - 對話框的識別碼。
dialogContext - DialogContext。
stateConfiguration - DialogStateManagerConfiguration。

傳回:

DialogTurnResult。

onComputeId

protected String onComputeId()

計算對話框的識別碼。

傳回:

標識碼。

onDialogEvent

public CompletableFuture onDialogEvent(DialogContext dc, DialogEvent e)

當事件引發時,使用 『DialogContext.emitEvent()』,由目前對話或目前對話啟動的對話框呼叫。

參數:

dc - 目前交談回合的對話內容。
e - 要引發的事件。

傳回:

True 是表示 如果事件是由目前的對話框處理,且反升應該停止。

onPostBubbleEvent

protected CompletableFuture onPostBubbleEvent(DialogContext dc, DialogEvent e)

在事件向所有家長泡泡後呼叫,但未處理。

這是執行事件默認處理邏輯的好位置。 傳回 'true' 會防止子對話處理事件。

參數:

dc - 目前交談回合的對話內容。
e - 要引發的事件。

傳回:

事件是否由目前的對話框處理,而進一步處理應該停止。

onPreBubbleEvent

protected CompletableFuture onPreBubbleEvent(DialogContext dc, DialogEvent e)

在事件反升至其父系之前呼叫。

這是執行事件攔截的好位置,因為傳回 『true』 會防止事件進一步向對話父系冒泡,也會防止任何子對話執行其默認處理。

參數:

dc - 目前交談回合的對話內容。
e - 要引發的事件。

傳回:

事件是否由目前的對話框處理,而進一步處理應該停止。

repromptDialog

public CompletableFuture repromptDialog(TurnContext turnContext, DialogInstance instance)

當對話框應該重新提示使用者輸入時呼叫。

參數:

turnContext - 這個回合的內容物件。
instance - 此對話框的狀態資訊。

傳回:

代表異步作的 CompletableFuture。

resumeDialog

public CompletableFuture resumeDialog(DialogContext dc, DialogReason reason)

當子對話完成此回合時呼叫,將控件傳回此對話方塊。

一般而言,子對話是以呼叫 beginDialog(DialogContext dc, Object options) 開始,不過,如果呼叫 replaceDialog(String dialogId) 方法,邏輯子對話可能會與原始對話不同。

如果此方法為 *not* 覆寫,當用戶回復時,對話框會自動結束。

參數:

dc - 交談目前回合的對話內容。
reason - 對話繼續的原因。

傳回:

如果工作成功,結果會指出此對話框在處理此對話框回合之後是否仍在作用中。

resumeDialog

public CompletableFuture resumeDialog(DialogContext dc, DialogReason reason, Object result)

當子對話完成此回合時呼叫,將控件傳回此對話方塊。

一般而言,子對話是以呼叫 beginDialog(DialogContext dc, Object options) 開始,不過,如果呼叫 replaceDialog(String dialogId, Object options) 方法,邏輯子對話可能會與原始對話不同。

如果此方法為 *not* 覆寫,當用戶回復時,對話框會自動結束。

參數:

dc - 交談目前回合的對話內容。
reason - 對話繼續的原因。
result - 選擇性值,從呼叫的對話框傳回的值。 傳回之值的型別取決於子對話框。

傳回:

如果工作成功,結果會指出此對話框在處理此對話框回合之後是否仍在作用中。

run

public static CompletableFuture run(Dialog dialog, TurnContext turnContext, StatePropertyAccessor accessor)

建立對話堆疊並啟動對話,並將它推送至堆疊。

參數:

dialog - 要啟動的對話框。
turnContext - 交談目前回合的內容。
accessor - 用來管理對話堆疊狀態的 StatePropertyAccessor 存取子。

傳回:

代表異步作的工作。

setId

public void setId(String withId)

設定對話框的識別碼。

參數:

withId - 對話框的識別碼。

setTelemetryClient

public void setTelemetryClient(BotTelemetryClient withTelemetryClient)

設定要用於記錄的 BotTelemetryClient

參數:

withTelemetryClient - 要用於記錄的 BotTelemetryClient。

適用於