开发DialogFlow Agent:如何让Google Assistant无输入跳转至Android App深层链接?
首先直接给你结论:用actions-on-google Node.js库没办法实现无需用户触发(比如点击按钮)就直接深层链接到App指定页面。你提到的OpenUrlAction和LinkOutSuggestion确实是actions-on-google里用来跳转的工具,但它们的设计逻辑就是必须经过用户主动点击确认——这其实是Google Assistant的交互规范,避免未经用户同意就跳转,影响体验。
那像Netflix、Spotify这类应用,用户说一句“打开Netflix看《怪奇物语》”就能直接跳转到App对应的播放页面,它们是怎么做到的?答案是App Actions,而不是actions-on-google。
App Actions是Google专门为App和Assistant深度集成设计的方案,它的核心是把App的特定功能(比如播放视频、播放音乐)和Assistant的内置意图(比如actions.intent.PLAY_MEDIA)关联起来。当用户的语音指令匹配到这些内置意图时,Assistant可以直接触发App的深层链接(通过Android App Links或者App Indexing技术),不需要用户额外点击按钮,直接完成跳转。
简单区分一下两者的定位:
- actions-on-google(现在更多是Dialogflow CX/ES的配套库)主要用来构建对话式Agent,侧重多轮对话交互,跳转只是对话流程中的一个可选交互节点,必须用户触发。
- App Actions则是App功能的直接语音触发入口,更偏向于用语音直接调用App的具体功能,跳过对话环节直接跳转。
如果你想实现类似Netflix的直接跳转效果,应该去配置App Actions,而不是在Dialogflow Agent里用actions-on-google库折腾。你需要在App的AndroidManifest.xml里定义App Links,然后在Google Actions Console里配置App Actions的意图关联,把语音指令和App的深层链接对应起来。
内容的提问来源于stack exchange,提问作者NgoniM

