簡體   English   中英

谷歌家庭將卡發送到谷歌主頁應用程序

[英]Google home to send card to the Google Home app

我制作了一個小型Google Home應用程序,我的服務使用SimpleMessage + Card返回響應。

在console.actions.google.com模擬器中運行應用程序時,它非常有效。 我得到的卡都很好。

但是當我測試與Google Home的對話時,它只發送文本,沒有任何卡片的痕跡。

但是,如果我在手機上與谷歌家庭應用程序通話,它會正確發送卡。

是否有能力接收Google Home發送的卡片? 有可能嗎?

當用戶通過Google Home進行通話時,無法制作發送的卡片,但如果需要卡片,您可以使用多種技術作為開發人員。

首先 - 良好的設計表明,卡片應該用於補充對話,而不是對話的焦點。 確保語音對話本身很重要,並僅在必要時使用可視元素。 如果您的操作過於直觀 - 它可能更適合作為移動或網絡應用,而不是動作。

如果您的設備需要屏幕,則可以在配置問題時在操作控制台中進行設置。 但是,這會阻止它在Google Home設備上使用。

在此輸入圖像描述

如果你不想走這條路線,並希望允許它在智能揚聲器上使用,但仍然利用可用的屏幕,你有幾個選擇。

首先,你可以發送卡片。 正如您所發現的那樣,它們不會出現,但它們不會造成任何問題。

如果您希望屏幕可用時略有不同,則可以檢查用戶助手當時的表面功能 如果您正在使用node.js庫,則可以使用如下命令

let hasScreen = app.hasSurfaceCapability(app.SurfaceCapabilities.SCREEN_OUTPUT)

確定屏幕是否可用並根據變量hasScreen采取措施。 如果您使用JSON,你需要檢查在陣列surface.capabilitiesdata.google.surface.capabilities ,看看是否"actions.capability.SCREEN_OUTPUT"是可用的表面之一。

如果沒有,並且您在對話中找到了您認為需要發送可視結果的點,您還可以請求在支持屏幕輸出的設備上繼續對話。

首先,您需要確保他們有可用的屏幕。 你可以用node.js庫做類似的事情

const screenAvailable = app.hasAvailableSurfaceCapabilities(app.SurfaceCapabilities.SCREEN_OUTPUT);

或者通過檢查JSON中的availableSurfaces.capabilitiesdata.google.availableSurfaces.capabilities參數。

如果有一個可用,您可以請求繼續與那里的對話

app.askForNewSurface(context, notif, [app.SurfaceCapabilities.SCREEN_OUTPUT]);

context是將在Google Home上顯示的消息,並且notif將顯示在他們的移動設備上(例如)讓他們繼續對話。 如果使用JSON,則需要使用actions.intent.NEW_SURFACE下一個意圖。

無論哪種方式,用戶都將在他們的移動設備上收到通知。 選擇通知將啟動該設備上的助手,並再次使用參數調用您的操作,以便檢查它們是否在新表面上。 如果是這樣 - 你可以發送卡。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM