Google Action模拟器中交易模块cart preview card不显示问题咨询
关于Google Action Transaction API中Cart Preview Card模拟器不显示的问题
先给你吃个定心丸:Google确实会完全根据你传入的订单对象自动渲染Cart Preview Card,根本不需要你自己动手构建卡片——这也是Transaction API设计的初衷,让开发者不用操心不同设备上的UI适配,统一由Google处理。
你碰到的移动端正常显示但模拟器看不到的情况,大概率是模拟器本身的限制或者一些容易忽略的配置细节,给你列几个排查方向:
- 先检查模拟器的设备类型:模拟器默认可能选的是智能音箱(比如Google Home),这类设备只有语音交互,根本不会显示视觉卡片!你赶紧切换到手机类型(比如Pixel系列)再试试,说不定换完就出来了。而且说实话,模拟器对交易类卡片的渲染支持一直不如移动端及时,有时候就是会滞后。
- 核对订单对象的字段完整性:虽然你按教程走了,但还是建议把生成的订单对象打出来看看(用
console.log(order)),对照Google Orders V3的字段要求确认必填项都齐了:totalPrice必须有amount数值和currencyCode(比如CNY、USD这种标准代码)- 每个
lineItems条目得有name、quantity和完整的price结构 merchant的name这类基础信息不能缺
有时候哪怕只是一个字段格式不对,模拟器就可能不渲染卡片,但移动端兼容性更好能正常显示。
- 清掉模拟器缓存或换测试账号试试:模拟器有时候会缓存旧的会话数据,点右上角的重置按钮清空会话,或者退出当前测试账号重新登录,说不定就能解决。
- 确认意图触发的代码逻辑:你得确保在触发
actions.intent.TRANSACTION_DECISION的时候,是用conv.ask(new TransactionDecision(order))把订单对象正确传出去了,别在传递过程中把数据弄丢了。
另外,既然移动端能正常显示,还能完成交易,说明你的ordersv3: true配置和交易逻辑完全没问题,真的不用纠结要不要自己做卡片——Google包了这事。
内容的提问来源于stack exchange,提问作者Jahir
相关产品推荐
相关产品推荐

