Con Azioni app, gli utenti possono accedere direttamente ai contenuti della tua app dicendo ad esempio "Hey Google, mostrami il menu di Three Dot Cafe su ExampleApp". Questa funzionalità è chiamata link diretti e può semplificare per consentire agli utenti di svolgere attività con la tua app.
Per soddisfare questo tipo di richiesta, l'Assistente Google genera un link diretto a contenuti corrispondenti nella tua app. Se gestisci attivamente il tuo sito web con informazioni sui contenuti o sui prodotti e i link diretti in-app sono organizzati questi contenuti web pubblici, puoi configurare l'assistente in modo che recuperi gli URL per l'azione fulfillment dal tuo sito web utilizzando un inventario web.
Un inventario web è la posizione del sito web degli URL degli elementi supportati
dalla tua app. Quando un utente richiama l'Azione app, l'assistente associa l'utente
della query, ad esempio "Three Dot Cafe", agli URL corrispondenti nell'indice di ricerca di Google.
del sito web specificato nel shortcuts.xml
per la tua app per Android.
Vantaggi
L'inventario per il web offre vantaggi per le app con elenchi di grandi dimensioni e regolarmente aggiornati articoli visualizzati o ordinati dagli utenti nell'app:
I dati di inventario web risiedono sul tuo sito web, a differenza dei dati di inventario in linea, per archiviare elenchi di articoli nell'app. Se consenti all'assistente di accedere ai dati web evita il rischio di dati di inventario in linea inattivi, che possono essere aggiornati solo per pubblicare una nuova versione dell'app.
Gli inventari in linea sono limitati a 1000 articoli. Al contrario, un inventario web non ha limiti di articoli e può crescere con le tue esigenze.
Un inventario web può semplificare la logica dell'app consentendo l'evasione dell'ordine gestire URL di contenuti prevedibili recuperati dal tuo sito web. Al contrario, se se un inventario non è configurato, l'assistente genera link diretti il completamento mediante la mappatura dei parametri di intent alle variabili in un modello di URL. Il tuo fulfillment dovrà analizzare questo URL generato dinamicamente Stabilire se un utente ha richiesto un'entità supportata nella tua app.
Come funziona
Durante un'Azione app, l'assistente contiene link diretti ai contenuti dell'app tramite
intent (BII) che definisci in shortcuts.xml
. L'assistente usa un linguaggio naturale
per identificare gli articoli pertinenti nella richiesta di un utente e li estrae
nei parametri degli intent integrati. L'assistente genera quindi un link diretto utilizzando i parametri,
in base alla configurazione di evasione degli ordini in shortcuts.xml.
Sono disponibili tre metodi per generare link diretti per il completamento:
- Mappatura dei parametri: associa i parametri di intent ai segnaposto in una modello di URL di completamento.
- Inventario incorporato: abbina i parametri di intenzione a un elenco di elementi supportati.
entities
definito nell'app. - Inventario per il web: associa i parametri di intenzione ai contenuti presenti nella Indice della Ricerca Google.
Un inventario web è un pattern URL di un sito web definito dallo sviluppatore,
come https://www.exampleapp.com/restaurants/.*
, che rappresenta un insieme di entità
supportate da un'app.
Se per un inventario web è configurato un parametro dell'intent integrato,
esegue una query sul sito web per eseguire una corrispondenza di entità con la query dell'utente. Assistente, quindi
trasmette risultati dell'URL corrispondenti al pattern URL configurato, come
https://www.exampleapp.com/restaurants/three-dot-cafe
, per l'evasione dell'ordine.
![](https://developer.android.google.cn/static/guide/app-actions/images/web-inventory-flow.png?authuser=9&hl=it)
Intent integrati supportati
L'inventario per il web è supportato, per alcuni parametri di intent, dai seguenti parametri: intent integrati:
- [
actions.intent.CREATE_REVIEW
] - [
actions.intent.GET_NEWS_ARTICLE
] - [
actions.intent.GET_REVIEW
] - [
actions.intent.GET_THING
] - [
actions.intent.ORDER_MENU_ITEM
] - [
actions.intent.GET_EXERCISE_PLAN
] - [
actions.intent.GET_DIGITAL_DOCUMENT
] - [
actions.intent.GET_ITEM_LIST
] - [
actions.intent.GET_OFFER
] - [
actions.intent.CREATE_OFFER
] - [
actions.intent.GET_PRODUCT
] - [
actions.intent.UPDATE_CART
] - [
actions.intent.CREATE_SOCIAL_MEDIA_CONNECTION
] - [
actions.intent.GET_IMAGE_OBJECT
] - [
actions.intent.GET_SOCIAL_MEDIA_POSTING
] - [
actions.intent.GET_SOCIAL_MEDIA_PROFILE
] - [
actions.intent.CREATE_TAXI_RESERVATION
] - [
actions.intent.CREATE_FLIGHT_RESERVATION
] - [
actions.intent.CREATE_LODGING_RESERVATION
] - [
actions.intent.GET_LOCAL_BUSINESS
] - [
actions.intent.GET_RESERVATION
] - [
actions.intent.UPDATE_RESERVATION
]
Aggiungi inventario web
Una volta identificato un intent integrato supportato, puoi abilitarlo per l'inventario web aggiornando
shortcuts.xml
con i dettagli del tuo sito web. Il file shortcuts.xml
è un
risorsa del tuo progetto Android in cui definisci gli intent integrati mappati
la funzionalità dell'app e il modo in cui ogni intent integrato dovrebbe generare link diretti per l'app
completamento. Per scoprire di più su shortcuts.xml
, consulta la sezione Creare scorciatoie.xml.
Per utilizzare l'inventario web per un intent integrato supportato, segui questi passaggi:
Nel file
shortcuts.xml
della tua app, aggiungi un tag<capability>
con un attributoandroid:name
impostato sul nome di un intent integrato che stai gestendo inventario web, ad esempioactions.intent.ORDER_MENU_ITEM
.Aggiungi un tag
<intent>
con unandroid:action
nel tag<capability>
impostato sul nome della vista che deve essere attivata da questo intent.Nello stesso tag
<intent>
, aggiungi un tag<parameter>
e impostaneandroid:name
al parametro dell'intent integrato che meglio corrisponde all'entità descritta dalle tue pagine web. Ad esempio, quando fornisci inventario web perORDER_MENU_ITEM
, devi collegare le pagine dei menu amenuItem.name
.Nel nuovo tag
<parameter>
, aggiungi un tag<data>
e impostaneandroid:pathPattern
al pattern URL del percorso da impostare per l'inventario web.
Se configuri shortcuts.xml
seguendo questi passaggi, l'assistente può
recupera i contenuti web dall'indice della Ricerca Google del pattern URL che
specificato nell'attributo android:pathPattern
. L'assistente fornisce quindi un URL
al completamento utilizzando i risultati corrispondenti al pattern del percorso dell'URL che
definito. L'app indirizza poi l'utente a un punto specifico dell'app in base
in base ai dati URL forniti dall'assistente.
Ad esempio, il tuo sito web contiene schede di prodotto che utilizzano un percorso dell'URL
che iniziano con https://www.examplecafe.com/items/
. Utilizzi pathPattern
valore https://www.examplecafe.com/items/.*
e l'assistente utilizza questo URL
pattern in una ricerca web per trovare un URL di completamento, ad esempio
https://www.examplecafe.com/items/item123
.
Se l'assistente trova un URL di inventario web corrispondente, fornisce l'URL nella
Campo <data>
dell'intent di completamento, come se si trattasse di un link diretto. Utilizza la
getData()
dell'intent di ottenere l'URL come oggetto Uri
. L'attività dell'app che
riceve l'intent responsabile di interpretare l'URL e di attivare
l'interfaccia utente dell'app
appropriata.
Esempio di scorciatoie.xml
L'esempio seguente definisce un intent integrato ORDER_MENU_ITEM
che
fornisce un inventario web per restituire risultati URL per le richieste contenenti
menuItem.name
Parametro dell'intent integrato:
<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<!-- Define URL match pattern in the pathPattern data field -->
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*"/>
</parameter>
</intent>
</capability>
</shortcuts>
Nell'esempio precedente, viene specificato un pathPattern
per menuItem.name
,
indicando all'assistente di restituire solo gli URL che corrispondono al pattern URL:
https://www.examplecafe.com/items/.*
Altri shortcuts.xml
esempi di intent integrati che supportano l'inventario web sono
disponibile nella documentazione di riferimento.
Gestire i video di riserva per i risultati mancanti
Nei casi in cui i risultati dell'inventario web non vengano restituiti al tuo evasione degli ordini, la tua app deve implementare una logica di fallback per completare l'azione con la migliore esperienza utente possibile. Le situazioni che causano la mancanza di risultati includono:
- Parametro di intent mancante: l'utente ha omesso un parametro previsto nella sua la query o l'assistente non ha capito il parametro nell'utente richiesta.
- Risultato URL mancante: l'assistente non è riuscito a trovare un'entità sul tuo sito web corrispondente alla query dell'utente.
Puoi gestire i valori dei parametri mancanti definendo più <intent>
gli elementi per una capacità. Se l'assistente non riesce a soddisfare il primo intent,
all'intento successivo e così via.
Gli intent di riserva non devono richiedere parametri. Dovrebbero invece soddisfano la funzionalità con un link diretto più generico, come mostrare risultati di ricerca risultati per la query dell'utente.
Nel seguente esempio shortcuts.xml
, un intent integrato ORDER_MENU_ITEM
definisce due completamenti: il primo prevede un URL dall'menuItem.name
. Il secondo non richiede parametri, indirizzando l'utente a una pagina
tutte le voci di menu.
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*"/>
</parameter>
</intent>
<!-- Fallback intent with no required parameters -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.ViewMenuActivity">
<url-template android:value="myapp://app.examplecafe.com/menu/all-items" />
</intent>
</capability>
Nei casi in cui non venga restituito un URL dell'inventario web, i contenuti dell'utente query può essere ancora utilizzata negli intent di riserva, ad esempio per visualizzare che consentono di analizzare i dati e visualizzare i risultati.
Nel seguente esempio shortcuts.xml
, sono definiti due elementi di intent:
- Il primo richiede un link diretto all'inventario web dall'
menuItem.name
. - Se non viene restituito un link diretto, il secondo intent mostra
utilizzando la query dell'utente da
menuItem.name
, se presente.
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter android:name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*" />
</parameter>
</intent>
<!-- Fallback intent displaying search results, using "menuItem.name" -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.SearchMenuActivity">
<parameter-mapping android:name="menuItem.name" android:key="food" />
<url-template android:value="https://www.examplecafe.com/search?q={?food}" />
</intent>
</capability>
Aggiungi la ricerca in-app con l'inventario per il web
Per consentire agli utenti di cercare contenuti web nella tua app combinando
con un'implementazione dell'intent integrato actions.intent.GET\_THING
.
Questo intent integrato cerca contenuti o entità utilizzando la ricerca in-app predefinita
in un'app, attivando query come "Hey Google, mostrami le escursioni a cascata
su SampleApp." Configurando l'inventario web per la funzionalità thing.name
trasmesso dall'intent integrato GET_THING
, corrispondente ai risultati dell'entità proveniente da
sito web vengono passati per il completamento.
Per esempi di shortcuts.xml
di inventario web, consulta il GET\_THING
riferimento degli intent integrati.
Test dell'inventario web
Quando definisci un inventario web per un completamento di intent integrati, l'assistente genera un
link diretto utilizzando risultati web corrispondenti al pattern urlTemplate
definito per
del parametro dell'intent integrato specificato. Se non è possibile trovare un risultato di inventario web, l'assistente
genera un URL corrispondente al pattern urlTemplate
del tuo intent di riserva. Tu
puoi testare l'implementazione dell'inventario web verificando che i link a cui l'assistente
fornisce sono gli URL che corrispondono ai pattern dell'inventario urlTemplate
per il web.
Nel seguente intent integrato ORDER_MENU_ITEM
di esempio, l'assistente genera l'inventario web
link di evasione ordini corrispondenti al pattern urlFilter
specificato in
menuItem.name
, ad esempio:
https://www.examplecafe.com/items/nuggets
. Il secondo intent prende il valore
menuItem.name
ed esegue una ricerca se il primo intent non corrisponde al
Pattern URL.
<capability android:name="actions.intent.ORDER_MENU_ITEM">
<!-- web inventory fulfillment -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.OrderMenuItemActivity">
<parameter name="menuItem.name">
<data android:pathPattern="https://www.examplecafe.com/items/.*" />
</parameter>
</intent>
<!-- search intent -->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.MenuSearchActivity">
<parameter-mapping android:name="menuItem.name" android:key="food" />
<url-template android:value="https://www.examplecafe.com/search?q={?food}" />
</intent>
</capability>
Utilizza lo strumento di test delle Azioni app per testare l'inventario web su un sistema fisico o virtuale dispositivo.
Per utilizzare lo strumento di test:
- Connetti il dispositivo di test all'app in esecuzione.
- In Android Studio, vai a Strumenti > Azioni app > Test Azioni app strumento.
- Fai clic su Crea anteprima.
- In Android Studio, esegui l'app sul tuo dispositivo di test.
- Usa l'app Assistente sul dispositivo di test per testare l'Azione app. Per Ad esempio, puoi dire "Hey Google, ordina pepite su ExampleCafe".
- Osserva il comportamento della tua app o utilizza il debugger di Android Studio per verificare il risultato dell'azione desiderata.