过去几天,Cortana发生了什么变化? 我在自适应卡上有按钮,现在什么也不做。我已经进行了远程调试,并按预期达到了所有断点,但是在点击按钮时什么也没有发生。好像按钮以某种方式被禁用。 在模拟器中一切正常。 我的Bot代码仅显示了自适应卡中的按钮,然后将其发布到DataJson值中,该值由MessageReceivedAsync方法接收。 我一直在完善这一切的工作方式,因为我发现Cortana在一张卡上最多只能进行5次操作。我对此做了一些处理,使每个按钮都出现在卡上。 因此,我一直在思考,在优化过程中,我做了一些使这些按钮不再起作用的事情。 但是,我现在将代码放回到了几天前的版本,该版本在Cortana中确实有效,而现在却不起作用。 因此,我的问题是,Cortana方面有什么改变可以阻止这种情况吗?
谢谢!
答案 0 :(得分:0)
我修改了echodemo以制作一个简单的自适应卡,它的工作方式如记录所示:“感谢单击!SomeType为SomeData”。 (我正在记录一张票证,以将文档更新到自适应卡v1.0.3。
public async Task ClickHandleAsync(IDialogContext context, IAwaitable<IMessageActivity> argument)
{
var message = await argument;
try
{
string someValue = "unknown";
if (message.Value != null)
{
// Got an Action Submit
dynamic value = message.Value;
string s = value.ToString();
Trace.WriteLine(s);
someValue = value.SomeType;
}
else
Trace.TraceInformation("There is no value");
//string data = message.ChannelData.ToString();
//Trace.WriteLine(data);
//Trace.TraceInformation("stringify message");
//string json = new JavaScriptSerializer().Serialize(message);
//Trace.WriteLine(json);
await context.PostAsync("Thanks for the click! SomeType is " + someValue);
context.Wait(MessageReceivedAsync);
}
catch (Exception e)
{
Trace.TraceInformation(e.ToString());
}
}
public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument)
{
var message = await argument;
if (message.Text == "show card")
{
var response = context.MakeMessage();
if (response.Attachments == null)
response.Attachments = new List<Attachment>();
AdaptiveCard card = new AdaptiveCard();
card.Body.Add(new AdaptiveTextBlock()
{
Text = "This is a test",
Weight = AdaptiveTextWeight.Bolder,
Size = AdaptiveTextSize.Medium
});
card.Actions.Add(new AdaptiveSubmitAction()
{
Title = "Click Me",
Id = "12345678",
DataJson = "{ \"SomeType\": \"SomeData\" }"
});
Attachment attachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = card,
Name = "MyCard"
};
response.Attachments.Add(attachment);
await context.PostAsync(response);
context.Wait(ClickHandleAsync);
}