JBe*_*rdo 6 c# cortana windows-10 uwp windows-10-universal
我有一个Cortana XML文件,我需要输入一个数字.我该怎么做才能确保将其转换为数字?
<Command Name="AddMoney">
<Example> Add 10 dollars </Example>
<ListenFor> add {amount} {currency} </ListenFor>
<Feedback> Adding some money </Feedback>
<Navigate/>
</Command>
<PhraseList Label="currency">
<item>dollar</item>
<item>euro</item>
<item>pound</item>
</PhraseList>
<PhraseList Label="amount">
</PhraseList>
Run Code Online (Sandbox Code Playgroud)
我找到了一种接收号码的方法,但并不完美。
<PhraseTopic Label="amount" Scenario="Commands">
<Subject>Phone Number</Subject>
</PhraseTopic>
Run Code Online (Sandbox Code Playgroud)
注意我使用PhraseTopic而不是PhraseList。我真的不知道哪一个Scenario是最好的,但我发现Commands比没有Scenario设置能产生更好的结果。由于某些奇怪的原因,PhraseTopic 标签必须放置在所有 PhraseList 标签之后......
在尝试科目时,自动完成功能会显示一些选项,其中最有希望的是Date/Time、Addresses和Phone Number。当尝试使用多个主题时,我永远无法匹配,但是使用“电话号码”(或只是“数字”,即使没有这样的选项),我能够在某种程度上一致地接收数字值。
该数字以数字形式出现,因此我只需要int.TryParse(myText, out myNumber)使用它或说“数字输入无效”。
请注意,即使有主题和场景限制,也可以在此处输入任何内容......以下内容将起作用:
"Hey Cortana, MyAppName add blah blah blah dollars"
Run Code Online (Sandbox Code Playgroud)
金额实际上是"blah blah blah"