【发布时间】:2018-06-04 11:42:21
【问题描述】:
我需要让 Cortana 阅读我的所有提示,到目前为止,我设法让它说出如下示例中的简单短语:
[LuisIntent("Thanks")]
public async Task Thanks(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult result)
{
await context.SayAsync(text: Phrases.YOURE_WELCOME, speak: Phrases.YOURE_WELCOME);
context.Wait(this.MessageReceived);
}
但我不能在 PromptDialogs.Text 上执行此操作 我有这个代码:
private async Task OnCustomerSet(IDialogContext context, IAwaitable<string> result)
{
string name = await result;
PromptDialog.Text(context, OnNIFSet, Phrases.ASK_CUSTOMER_NIF);
}
如何让 Cortana 也说出这个提示?
谢谢。
【问题讨论】:
-
在浏览完 SDK 之后,必须对 SDK 本身进行更改才能使其正常工作。这一定是设计提示时的疏忽。不会有一个简单的解决方案。您可以尝试覆盖
PromptChoice.text以使其接受PromptOptions但这很快就会变得混乱。您可以在发送提示之前尝试发送context.SayAsync。这是一个完全的黑客,但它可能对你有用。 -
是的,我试过了,它不起作用,因为该短语显示了两次,如果我离开它“”或 null 它显示一个 0,最后在模拟器上,还没有尝试查看它在 Cortana 中显示的内容。
-
我在Cortana测试的时候好像只显示过一次,但不是很精细的测试
-
我一直在尝试在提示之前发送一个 context.SayAsync 但 Cortana 没有阅读它,事实上它似乎只是跳过了 SayAsync,因为它甚至不显示文本。
-
我设法通过两次使用 context.SayAsync 来做到这一点,Cortana 似乎忽略了提示之前的那个。
标签: c# azure botframework cortana