Interactive Canvas API 是一个 JavaScript 库,可用于通过 Web 应用中的 interactiveCanvas
对象与对话型 Action 进行交互。
如需详细了解 Interactive Canvas,请参阅 Interactive Canvas 文档。
方法
准备就绪
ready(callbacks) returns undefined
在加载完成后由 Interactive Canvas Web 应用调用以注册回调。
参数 | |
---|---|
callbacks |
InteractiveCanvasCallbacks
一个包含方法回调的对象。 |
sendTextQuery
sendTextQuery(textQuery) returns Promise<state>
向对话操作发送文本查询。
参数 | |
---|---|
textQuery |
string
要发送到对话操作的查询。 |
state |
string
以下任一项:
|
getHeaderHeightPx
getHeaderHeightPx() returns Promise<height>
确定显示屏顶部标头的高度。
参数 | |
---|---|
height |
number
高度(以像素为单位)。 |
outputTts
outputTts(text, openMic) returns undefined;
播放 SSML 文本。
参数 | |
---|---|
text |
string
要播放的 SSML 支持字符串。 |
openMic |
boolean
TTS 播放完毕后是否打开麦克风。 |
createIntentHandler
createIntentHandler(intentId, callback) returns IntentHandler
为 NLU 自定义 intent 创建 intent 处理程序。
参数 | |
---|---|
intentId |
string
Actions Builder 中定义的 intent 名称。 |
callback |
function(MatchedIntent)
当 intent 匹配时要执行的函数。 |
IntentHandler |
object
可使用 |
IntentHandler
表示 intent 处理程序的对象。可以使用 expect()
或 prompt()
进行注册。
MatchedIntent
包含匹配意图的数据的对象。
方法 | |
---|---|
getIntentArg(parameterName) |
function(string)
用于获取匹配意图的意图参数的方法。 |
createNumberSlot
createNumberSlot(callback, hints?) returns Slot<number>
创建编号类型的槽。
参数 | |
---|---|
callback |
function(FilledSlot)
当槽填充时要执行的函数。 |
hints |
Hints
用户在填充槽时可能会说出的简短字词。 |
Slot |
object
可以使用 |
createTextSlot
createTextSlot(callback, hints?) returns Slot<string>
创建字符串类型的槽。
参数 | |
---|---|
callback |
function(FilledSlot)
当槽填充时要执行的函数。 |
hints |
Hints
用户在填充槽时可能会说出的简短字词。 |
Slot |
object
可以使用 |
createConfirmationSlot
createConfirmationSlot(callback, hints?) returns Slot<boolean>
创建一个布尔值类型的槽。
参数 | |
---|---|
callback |
function(FilledSlot)
当槽填充时要执行的函数。 |
hints |
Hints
用户在填充槽时可能会说出的简短字词。 |
Slot |
object
可以使用 |
createOptionsSlot
createOptionsSlot(options, callback, hints?) returns Slot<string>
根据预定义的选项列表创建一个槽。
参数 | |
---|---|
options |
array<Option>
当槽填充时要执行的函数。 |
callback |
function(FilledSlot)
当槽填充时要执行的函数。 |
hints |
Hints
用户在填充槽时可能会说出的简短字词。 |
Slot |
object
可以使用 |
槽位
一个对象,表示要填充的广告位。可以使用 expect()
或 prompt()
进行注册。
FilledSlot<T>
一个对象,表示已填充的广告位。
参数 | |
---|---|
T |
boolean|number|string
广告位类型。 |
选项
表示槽类型条目的对象。
字段 | |
---|---|
key |
string
广告位类型条目的唯一标识符。 |
synonyms |
array<string>
用于选择广告位选项的字词列表。 |
提示
一个对象,表示广告位的提示。
字段 | |
---|---|
associatedWords |
array<string>
一个字词列表,用于帮助 NLU 系统确定要填充哪个槽位。 |
expect
expect(expectation) returns HandlerRegistration
在客户端上注册预期值。可在 intent 处理程序和槽中调用。
参数 | |
---|---|
expectation |
IntentHandler|Slot
要注册的 intent 处理程序或槽。 |
HandlerRegistration |
object
已注册的 intent 处理程序或槽位。 |
HandlerRegistration
表示已注册的 intent 处理程序的对象。
方法 | |
---|---|
deleteHandler() |
function
取消注册预期的 intent 处理程序。 |
clearExpectations
clearExpectations() returns undefined;
通过删除之前注册的所有 intent 处理程序和槽来移除所有预期。
提示符
prompt(tts, expectation) returns Promise<Answer<T>>
使用提供的 TTS 字符串提示用户,并在客户端上注册预期值。可在 intent 处理程序和槽中调用。
参数 | |
---|---|
tts |
string
用于提示用户输入预期预期信息的 TTS 字符串。 |
expectation |
IntentHandler|Slot
要注册的 intent 处理程序或槽。 |
Answer<T> |
object
用户针对提示提供的回答。 |
回答<T>
一个对象,表示用户提供的提示回答。
字段 | |
---|---|
value |
boolean|number|string
用户提供的回答的值。 |
status |
string
答案状态。 以下任一项:
|
triggerScene
triggerScene(sceneName) returns Promise<TriggerSceneStatus>
触发场景。
参数 | |
---|---|
sceneName |
string
要触发的场景的名称。 |
TriggerSceneStatus |
string
对 triggerScene() 的调用的状态。 以下任一项:
|
setUserParam
setUserParam(key, value) returns Promise<undefined>;
设置在对话之间传递和保留的键值对。
参数 | |
---|---|
key |
string
参数键。 |
value |
object|array|boolean|number|string
参数值。 |
getUserParam
getUserParam(key) returns Promise<object|array|boolean|number|string>;
获取指定键的参数值(如果存在)以及调用的状态。
参数 | |
---|---|
key |
string
参数键。 |
resetUserParam
resetUserParam() returns Promise<void>;
清除所有用户参数。
setHomeParam
setHomeParam(key, value) returns Promise<undefined>;
设置在对话之间传递和保留的键值对。
参数 | |
---|---|
key |
string
参数键。 |
value |
object|array|boolean|number|string
参数值。 |
getHomeParam
getHomeParam(key) returns Promise<object|array|boolean|number|string>;
获取指定键的参数值(如果存在)以及调用的状态。
参数 | |
---|---|
key |
string
参数键。 |
resetHomeParam
resetHomeParam() returns Promise<void>;
清除所有用户参数。
setCanvasState
setCanvasState(state) returns undefined
通知 Google 助理,画布 Web 应用已更新其状态。setCanvasState
方法不会返回值。您可以通过 conv.context.canvas.state
属性访问状态载荷。
参数 | |
---|---|
state |
Object
更新后的 Canvas 应用状态(以 JSON 对象表示)。 |
InteractiveCanvasCallbacks
这些回调提供了一种方式来响应来自对话型 Action 的信息或请求,而这些方法则提供了一种向对话型 Action 发送信息或请求的方法。
onUpdate
onUpdate(data) returns Promise|undefined
从对话型 Action 发送 Canvas
响应时调用。TTS 将在返回的 Promise 得到解析或超时 10 秒后启动。
参数 | |
---|---|
data |
Object
网络钩子发送的已更新数据。 |
onTtsMark
onTtsMark(markName) returns undefined
在 TTS 播放期间调用的回调。
始终触发的特殊标记:
START
表示 TTS 的开始。END
表示 TTS 的结束。ERROR
表示播放 TTS 时发生错误。
您还可以使用 SSML 和 <mark>
标记(例如 <mark name="custom"/>
)定义自定义标记。
参数 | |
---|---|
markName |
string
将名称标记为在 TTS 播放期间调用。 |
onInputStatusChanged
onInputStatusChanged(inputStatus) returns undefined
通知 Canvas 应用 Google 助理输入状态已更改。
参数 | |
---|---|
inputStatus |
Enum
设备上的语音和/或文字输入处理状态。可以是:
|