<entity-set>
在我的 actions.xml 文件中,我可以使用标签为我的意图参数提供清单。对于每个<entity>
,文档表明我可以为identifier
或指定一个值url
。identifier
和有什么区别url
?为什么<parameter-mapping>
我使用时需要标签identifier
,而使用时不需要url
?
问问题
452 次
1 回答
4
关键区别在于identifier
值是 URL 转义的。例如:
<intent name="actions.intent.SOME_INTENT">
<parameter name="param.name">
<entity-set-reference entitySetId="identifier_entity_set">
</parameter>
<fulfillment urlTemplate="https://app.com/{param_value}">
<parameter-mapping intentParameter="param.name" urlParameter="param_value" />
</fulfillment>
</intent>
<entity-set entitySetId="identifier_entity_set">
<entity identifier="escaped/url/path" name="hi">
</entity-set>
如果用户对 param.name 说“hi”,则解析的 urlTemplate 将为: https://app.com/escaped%2Furl%2Fpath。
<intent name="actions.intent.SOME_INTENT">
<parameter name="param.name">
<entity-set-reference entitySetId="url_entity_set">
</parameter>
</intent>
<fulfillment urlTemplate="{@url}" />
<entity-set entitySetId="url_entity_set">
<entity url="https://app.com/not/esacaped/url/path" name="bye">
</entity-set>
如果用户对 param.name 说“再见”,则解析的 urlTemplate 将是: https://app.com/not/esacaped/url/path。
另外,请注意,如果您{@url}
的 urlTemplate 中有,则不应<parameter-mapping>
为它包含 a;假设你有一个<entity-set>
值url
。
于 2019-05-08T21:54:37.553 回答