基于Surface Capabilities区分设备类型,调整Actions on Google建议芯片文本
根据设备类型自定义建议芯片文本
当然可以实现!你完全可以根据设备的Surface Capabilities来为建议芯片设置不同的文本,适配智能显示屏和移动设备的屏幕差异。下面是具体的实现步骤:
- 获取设备的Surface类型
首先你需要在代码里识别当前交互的设备类型。通过访问设备的能力集合,你可以区分智能显示屏(比如Google Nest Hub)和移动设备。以Actions SDK(Node.js)为例:
// 从设备能力中提取Surface类型 const surfaceCapability = conv.device.capabilities.find(cap => cap.name === 'actions.capabilities.SURFACE'); const surfaceType = surfaceCapability?.params?.surfaceType;
智能显示屏的surfaceType会是SMART_DISPLAY,而手机则是MOBILE。
- 分支设置芯片文本
拿到设备类型后,就可以为不同设备定义对应的建议芯片文本了:
let backChipText, forwardChipText; if (surfaceType === 'SMART_DISPLAY') { // 智能显示屏用完整文本 backChipText = '(backward)'; forwardChipText = '(forward)'; } else if (surfaceType === 'MOBILE') { // 移动设备用短符号适配宽度 backChipText = '<<'; forwardChipText = '>>'; } // 将文本添加为建议芯片 conv.add(new Suggestions([backChipText, forwardChipText]));
- Dialogflow用户的适配方式
如果你用的是Dialogflow,同样可以在Webhook请求中获取设备信息:
// 从Webhook请求中提取设备能力 const surfaceCapability = request.body.originalDetectIntentRequest.payload.device.capabilities.find(cap => cap.name === 'actions.capabilities.SURFACE'); const surfaceType = surfaceCapability?.params?.surfaceType; // 后续的文本分支逻辑和上面一致
测试的时候记得分别在智能显示屏和手机端验证效果,确保短符号在手机底部单行能完整显示,而完整文本在Hub上展示正常。
内容的提问来源于stack exchange,提问作者John Pool
相关产品推荐
相关产品推荐

