首页 > 解决方案 > 当 AccessVivContext 不是目标时如何访问 vivContext?

问题描述

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

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

我尝试在我的操作返回的结构中简单地输入一个 vivContext 属性。

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

    }
  }
  output(myOutput)
} 

我已经定义了一个原始类型“语言环境”要在 myOutput 结构中返回:

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

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

标签: bixby

解决方案


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

  1. 定义一个动作

action (GetLocale) { type (Constructor) output(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


推荐阅读