Actions SDK conv.hasScreen 未按预期工作

Actions SDK conv.hasScreen not working as expected

我正在使用 DialogFlow 和 Firebase 云函数构建一个动作。我有一个简单的检查,可以根据用户的设备类型提出问题或关闭对话。

 if (conv.hasScreen) {
      response += `Do you want to see a picture?`;
      conv.ask(response);
      return;
  }
  else{
    conv.close(response);
    return;
  }

我使用 Google Home mini 进行了测试,正如预期的那样,对话正常结束。但是当我在 phone 上测试时,if 检查失败并且对话再次关闭。我原以为比赛会继续进行,助手会要求我出示照片,但没有发生。我究竟做错了什么?

看看下面的就明白了Surface Capabilities

你是否在使用下面的语句?

const hasScreen =
    conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT');

看起来语法很简单conv.screen。由于 属性 hasScreen 不存在,条件总是 returns 未定义,这是一个错误的值。