当AccessVivContext不是目标时,如何访问vivContext?

sar*_*kon 1 bixby

我正在尝试在胶囊中提供vivContext信息。

我在这里查看:如果将AccessVivContext设置为训练语音的目标,则可以在胶囊中获取上下文。但是我一般如何访问它?

我尝试仅在操作返回的结构中输入vivContext属性。

action (myAction) {
  description (do the thing)
  type (Search)
  collect {
    input (locale) { // this is in vivContext
      ...

    }
  }
  output(myOutput)
} 
Run Code Online (Sandbox Code Playgroud)

并且我定义了要在myOutput结构中返回的原始类型“ locale”:

structure (myOutput) {
  description (...)
   property (locale) {
     type (locale) // hoping to return $vivContext.locale here
     min (Required) max (One)
  }
}
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有调用AccessVivContext.js来获取上下文。

Pet*_*aas 5

您是否定义了端点?$ vivContext是一个特殊变量,您可以在javascript级别上定义。无需从动作中传递它。这就是我建议编码的方式。

  1. 定义动作

操作(GetLocale){类型(构造函数)输出(Locale)}

  1. 定义一个概念

文字(语言环境)

  1. 定义getLocale.js

module.exports.function = function getLocale($ vivContext){return $ vivContext.locale; }

  1. 将您的操作映射到Javascript代码

操作端点{操作端点(GetLocale){接受输入($ vivContext)本地端点(“ getLocale.js”)}}

https://bixbydevelopers.com/dev/docs/sample-capsules/samples/user-context