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)
      用于获取匹配意图的 intent 参数的方法。  | 
  
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(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 助理 Canvas Web 应用已更新其状态。通过
setCanvasState
方法不会返回值。状态载荷可通过
conv.context.canvas.state 属性。
| 参数 | |
|---|---|
state | 
    Object
      画布应用的更新状态,作为 JSON 对象。  | 
  
InteractiveCanvasCallbacks
这些回调提供了一种响应信息或请求的方法 而这些方法则提供了一种 向对话型 Action 发送信息或请求。
onUpdate
onUpdate(data) returns Promise|undefined
在对话型 Action 发送 Canvas 响应时调用。TTS 将在以下时间后启动:
返回的 Promise 进行解析,或者在 10 秒后超时。
| 参数 | |
|---|---|
data | 
    Object
      已更新 Webhook 发送的数据。  | 
  
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
      设备上语音和/或文字输入处理的状态。罐形 为以下值: 
  |