Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android actions.xml应用程序动作url模板中{@url}的用法是什么?_Android_Actions On Google_App Actions - Fatal编程技术网

Android actions.xml应用程序动作url模板中{@url}的用法是什么?

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">

在我的actions.xml文件中,我可以使用
标记为我的意图的参数提供清单。对于每个
,文档表明我可以为
标识符
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>