Android actions.xml应用程序动作url模板中{@url}的用法是什么?
在我的actions.xml文件中,我可以使用Android actions.xml应用程序动作url模板中{@url}的用法是什么?,android,actions-on-google,app-actions,Android,Actions On Google,App Actions,在我的actions.xml文件中,我可以使用标记为我的意图的参数提供清单。对于每个,文档表明我可以为标识符或url指定一个值。identifier和url之间有什么区别?如果我使用标识符,为什么我需要标记?如果我使用url,为什么不需要标记?关键区别在于标识符值是url转义的。例如: <intent name="actions.intent.SOME_INTENT"> <parameter name="param.name">
标记为我的意图的参数提供清单。对于每个
,文档表明我可以为标识符
或url
指定一个值。identifier
和url
之间有什么区别?如果我使用标识符
,为什么我需要
标记?如果我使用url
,为什么不需要标记?关键区别在于标识符
值是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”,则解析的URL模板将为:
如果用户对param.name说“再见”,解析的URL模板将是:
另外,请注意,如果您的url模板中有{@url}
,则不应为其包含
;假设您正好有一个
和url
值
<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>