Google Actions(Google Assistant)响应中实现可点击呼叫电话号码的方法咨询
实现Google Assistant响应中的点击呼叫电话号码
当然可以做到!Google Assistant支持通过结构化响应或者富交互元素,让电话号码变成可点击呼叫的链接,下面是两种最常用的实现方式:
方法1:使用富卡片(推荐)
Actions on Google提供了多种富卡片组件,比如Basic Card,你可以在卡片中指定电话号码字段,Assistant会自动将其渲染为可点击的呼叫按钮。以Node.js的Actions SDK为例,代码大概是这样:
const { conversation } = require('@assistant/conversation'); const app = conversation({debug: true}); app.handle('providePhoneNumber', conv => { conv.add('这里是你需要联系的号码:'); conv.add(new Card({ title: '客服热线', text: '工作日9:00-18:00在线', buttons: new Button({ title: '立即呼叫', url: 'tel:+1234567890' }) })); });
这里的tel: URI是关键,Assistant会识别这个协议并自动处理为点击呼叫功能,用户在手机上点击按钮就会直接唤起拨号界面。
方法2:直接在文本响应中嵌入tel链接
如果你不想用卡片,也可以在文本响应里直接嵌入带tel:协议的链接,不过这种方式在语音响应里不会影响播报,但在Assistant的文字界面会显示为可点击链接:
conv.add(`你可以拨打客服热线:<a href="tel:+1234567890">+1 (234) 567-890</a>`);
不过要注意,这种方式在纯语音设备(比如智能音箱)上不会有交互效果,但在手机等带屏幕的设备上完全生效。
注意事项
- 一定要使用完整的国际号码格式(带国家代码前缀,比如
+1、+86),这样Assistant才能准确识别并适配不同地区的拨号规则。 - 测试时记得在带屏幕的Google Assistant客户端(比如手机上的Google App)查看效果,语音设备上只会播报号码,不会显示点击元素。
内容的提问来源于stack exchange,提问作者burak




