2

我已经在演示应用程序中实现了应用程序操作。它工作正常,我可以使用谷歌助手启动特定屏幕,查询如下

从鳄梨订购披萨

于是我开始整合 Slice。使用SliceViewer测试 Slice 时,它​​工作正常。

但是当我尝试从 Google Assistant 调用 Slice 时,它​​不起作用。

这是actions.xml中的片段

<action intentName="actions.intent.GET_ORDER">
    <fulfillment
        fulfillmentMode="actions.fulfillment.SLICE"
        urlTemplate="content://my.food.service/status" />

    <fulfillment
        fulfillmentMode="actions.fulfillment.DEEPLINK"
        urlTemplate="my://food/orders" />
</action>

我在 Google Assistant 中使用的查询来自文档

  • 让鳄梨检查我的订单
  • 检查我在鳄梨上的订单

但两者都不起作用。

此外,在将上述代码段添加到 actions.xml 后,我无法再使用“App Actions Test Tool”插件了。它说

预览创建错误状态代码:400 消息:前提条件检查失败。- 动作“actions.intent.GET_ORDER”的多个 URL 模板的必需参数为零。

我正在使用插件版本 v1.1.0

所以我的问题是: 是否可以通过 Google Assistant 测试 Slice?如果没有,什么时候可以开发和测试?

4

2 回答 2

2

是否可以通过 Google Assistant 测试 Slice?如果没有,什么时候可以开发和测试?

是的,使用 Studio 测试工具通过 Google Assistant 开发/测试 Slice 实现应该已经可以工作了。

您可以尝试删除DEEPLINK履行块,看看是否有效?所以你actions.xml看起来像:

<action intentName="actions.intent.GET_ORDER">
    <fulfillment
        fulfillmentMode="actions.fulfillment.SLICE"
        urlTemplate="content://my.food.service/status" />    
</action>

解释:一个特定的<action>必须有一个,并且只有一个<fulfillment>有零<parameter>个块的块required=true。为什么?因为这成为此处文档中所述的“后备”履行机制:

您必须提供一个<fulfillment>没有任何必需参数的作为后备履行。

由于actions.intent.GET_ORDER不接受任何参数,这意味着您只能拥有一个<fulfillment>可以通过 Slice 或 Deep Link 实现的块,但不能同时通过两者来实现。

于 2019-06-12T17:21:22.323 回答
1

我在使用谷歌助手测试切片时遇到问题。我的助手在深度链接正常工作时无法加载回复。

于 2019-07-03T09:14:16.033 回答