在功能中而不是在意图中检查supportsDisplay

时间:2018-09-10 18:11:07

标签: alexa alexa-skills-kit alexa-skill

我有一个使用此功能的工作技能,该功能检查alexa设备是否具有显示器,以便我可以构建模板输出或将输出呈现到卡上:

function supportsDisplay() {
  var hasDisplay =
  this.event.context &&
  this.event.context.System &&
  this.event.context.System.device &&
  this.event.context.System.device.supportedInterfaces &&
  this.event.context.System.device.supportedInterfaces.Display

  return hasDisplay;
}

我在几个地方渲染输出,所以我想做一个我可以调用的函数来处理视觉输出,而不必多次重写模板代码。

这将返回错误。如果我使用相同的函数,但是将对supportDisplay函数的调用注释掉,那么它将起作用,因此我认为问题出在我的调用方式上:

function makeTemplate(playStatus){
if (supportsDisplay.call(this)){...}
return;
}

我还尝试了根本不提供检查显示的功能,实际上只是将代码直接检查了功能,但这还是行不通的。

我猜测问题的一部分可能是this关键字(对于JS / Alexa开发人员来说我很陌生,并不真正了解“ this”的作用。

有没有一种方法可以从我的函数中调用supportsDisplay函数?这样做的语法是什么?

0 个答案:

没有答案