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

时间:2019-06-21 16:56:59

标签: bixby

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

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

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

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

    }
  }
  output(myOutput)
} 

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

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

但这似乎不是在调用AccessVivContext.js来获取上下文。

1 个答案:

答案 0 :(得分:4)

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

  1. 定义动作
  

action(GetLocale){            类型(构造函数)            输出(语言环境)          }

  1. 定义一个概念
  

文本(语言环境)

  1. 定义getLocale.js
  

module.exports.function =函数getLocale($ vivContext){           返回$ vivContext.locale;       }

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

action-endpoints {           动作端点(GetLocale){           接受的输入($ vivContext)             本地端点(“ getLocale.js”)           }         }

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