Aggiungi link per app Android

I link per app Android sono URL HTTP che indirizzano gli utenti direttamente a contenuti specifici nella tua app Android. I link per app Android possono indirizzare più traffico verso la tua app, aiutarti a scoprire quali contenuti dell'app vengono utilizzati di più e facilitare agli utenti la ricerca e la condivisione di contenuti in un'app installata.

Per aggiungere il supporto per i link per app Android:

  1. Crea filtri per intent nel manifest.
  2. Aggiungi codice alle attività della tua app per gestire i link in entrata.
  3. Associa la tua app e il tuo sito web a Digital Asset Links.

L'Assistente link app in Android Studio semplifica il processo con una procedura guidata passo passo, come descritto di seguito.

Per saperne di più su come funzionano i link alle app e sui vantaggi che offrono, consulta la pagina Gestire i link per app Android.

Aggiungere filtri per intent

L'Assistente link app in Android Studio può aiutarti a creare filtri di intent nel file manifest e a mappare gli URL esistenti del tuo sito web alle attività nella tua app. Inoltre, l'Assistente link app aggiunge il codice del modello in ogni attività corrispondente per gestire l'intent.

Per aggiungere filtri per intent e gestione degli URL, segui questi passaggi:

  1. Seleziona Strumenti > Assistente link app.
  2. Fai clic su Apri editor di mappatura URL e poi su Aggiungi in fondo all'elenco Mappatura URL per aggiungere un nuovo mapping.
  3. Aggiungi i dettagli per il nuovo mapping di URL:

    L'Assistente link app ti guida nella mappatura di base degli URL

    Figura 1. Aggiungi dettagli di base sulla struttura dei link del tuo sito per mappare gli URL alle attività nella tua app.

    1. Inserisci l'URL del tuo sito web nel campo Host.
    2. Aggiungi path, pathPrefix o pathPattern per gli URL che vuoi mappare.

      Ad esempio, se hai un'app di condivisione di ricette con tutte le ricette disponibili nella stessa attività e le ricette del tuo sito web corrispondente si trovano tutte nella stessa directory /recipe, utilizza pathPrefisso e inserisci /ricetta. In questo modo, l'URL http://www.recipe-app.com/recipe/grilled-potato-salad viene mappato all'attività selezionata nel passaggio successivo.

    3. Seleziona l'attività a cui gli URL devono indirizzare gli utenti.
    4. Fai clic su OK.

    Viene visualizzata la finestra Editor mappatura URL. L'Assistente link app aggiunge filtri per intent in base al mapping degli URL al file AndroidManifest.xml ed evidenzia le modifiche nel campo Anteprima. Se vuoi apportare modifiche, fai clic su Apri AndroidManifest.xml per modificare il filtro per intent. Per scoprire di più, consulta la pagina relativa ai filtri intent per i link in entrata.

    La finestra principale dello strumento Assistente link app mostra anche tutti i link diretti esistenti nel file AndroidManifest.xml e ti consente di correggere rapidamente eventuali configurazioni errate facendo clic su Risolvi tutti i problemi del manifest.

    L'Assistente link app ti consente di correggere gli errori di configurazione del file manifest.

    Nota: per supportare i link futuri senza aggiornare la tua app, definisci un mapping di URL che supporti gli URL che prevedi di aggiungere. Includi anche un URL per la schermata Home dell'app in modo che sia incluso nei risultati di ricerca.

  4. Per verificare che il mapping di URL funzioni correttamente, inserisci un URL nel campo Verifica mappatura URL.

    Se funziona correttamente, il messaggio di operazione riuscita indica che l'URL inserito è associato all'attività selezionata.

Gestire i link in entrata

Dopo aver verificato il corretto funzionamento del mapping degli URL, aggiungi la logica per gestire l'intent che hai creato:

  1. Fai clic su Seleziona attività dall'Assistente link app.
  2. Seleziona un'attività dall'elenco e fai clic su Inserisci codice.

L'Assistente link dell'app aggiunge codice alle tue attività, in modo simile al seguente:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    ...
    // ATTENTION: This was auto-generated to handle app links.
    val appLinkIntent: Intent = intent
    val appLinkAction: String? = appLinkIntent.action
    val appLinkData: Uri? = appLinkIntent.data
    ...
}

Java

@Override
void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    // ATTENTION: This was auto-generated to handle app links.
    Intent appLinkIntent = getIntent();
    String appLinkAction = appLinkIntent.getAction();
    Uri appLinkData = appLinkIntent.getData();
    ...
}

Questo codice non è completo da solo. Ora devi eseguire un'azione in base all'URI in appLinkData, ad esempio visualizzare i contenuti corrispondenti. Ad esempio, per l'app di condivisione di ricette, il codice potrebbe essere simile al seguente:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    ...
    handleIntent(intent)
}

override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    handleIntent(intent)
}

private fun handleIntent(intent: Intent) {
    val appLinkAction = intent.action
    val appLinkData: Uri? = intent.data
    if (Intent.ACTION_VIEW == appLinkAction) {
        appLinkData?.lastPathSegment?.also { recipeId ->
            Uri.parse("content://com.recipe_app/recipe/")
                    .buildUpon()
                    .appendPath(recipeId)
                    .build().also { appData ->
                        showRecipe(appData)
                    }
        }
    }
}

Java

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ...
  handleIntent(getIntent());
}

protected void onNewIntent(Intent intent) {
  super.onNewIntent(intent);
  handleIntent(intent);
}

private void handleIntent(Intent intent) {
    String appLinkAction = intent.getAction();
    Uri appLinkData = intent.getData();
    if (Intent.ACTION_VIEW.equals(appLinkAction) && appLinkData != null){
        String recipeId = appLinkData.getLastPathSegment();
        Uri appData = Uri.parse("content://com.recipe_app/recipe/").buildUpon()
            .appendPath(recipeId).build();
        showRecipe(appData);
    }
}

Associare l'app al sito web

Dopo aver configurato il supporto degli URL per la tua app, l'Assistente link app genera un file Link agli asset digitali che puoi utilizzare per associare il tuo sito web alla tua app.

In alternativa all'utilizzo del file Digital Asset Links, puoi associare il tuo sito e la tua app in Search Console.

Se utilizzi la firma dell'app di Google Play per la tua app, l'impronta del certificato prodotta dall'Assistente link app di solito non corrisponde a quella sui dispositivi degli utenti. In questo caso, puoi trovare lo snippet JSON Digital Asset Links corretto per la tua app nel tuo account sviluppatore Play Console in Release > Setup > App signing.

Per associare la tua app e il tuo sito web utilizzando l'Assistente link app, fai clic su Apri Generatore di file Digital Asset Links dall'Assistente link app e segui questi passaggi:

L'Assistente link app ti guida nella mappatura di base degli URL

Figura 2. Inserisci i dettagli del tuo sito e della tua app per generare un file Digital Asset Links.

  1. Inserisci il dominio del sito e il tuo ID applicazione.
  2. Per includere il supporto nel file Digital Asset Links per l'accesso One Tap, seleziona Assistenza per la condivisione delle credenziali tra l'app e il sito web e inserisci l'URL di accesso del tuo sito.In questo modo, al file Digital Asset Links viene aggiunta la seguente stringa, in cui dichiara che la tua app e il tuo sito web condividono le credenziali di accesso: delegate_permission/common.get_login_creds.

  3. Specifica la configurazione di firma o seleziona un file archivio chiavi.

    Assicurati di selezionare la configurazione della release o il file dell'archivio chiavi corretto per la build della release oppure il file della configurazione di debug o dell'archivio chiavi relativo alla build di debug della tua app. Se vuoi configurare la build di produzione, utilizza la configurazione della release. Se vuoi testare la build, utilizza la configurazione di debug.

  4. Fai clic su Genera file Digital Asset Links.
  5. Dopo che Android Studio ha generato il file, fai clic su Salva file per scaricarlo.
  6. Carica il file assetlinks.json sul tuo sito, con accesso in lettura per tutti, all'indirizzo https://yoursite/.well-known/assetlinks.json.

    Importante: il sistema verifica il file Digital Asset Links tramite il protocollo HTTPS criptato. Assicurati che il file assetlinks.json sia accessibile tramite una connessione HTTPS, a prescindere dal fatto che il filtro per intent dell'app includa https.

  7. Fai clic su Collega e verifica per confermare di aver caricato il file Digital Asset Links corretto nella posizione corretta.

Scopri di più su come associare il tuo sito web alla tua app tramite il file Digital Asset Links nella pagina Dichiarare le associazioni di siti web.

Testare i link per app Android

Per verificare che i link aprano l'attività corretta, procedi nel seguente modo:

  1. In Assistente link app, fai clic su Testa link di app.
  2. Inserisci nel campo URL l'URL che vuoi verificare, ad esempio http://recipe-app.com/recipe/grilled-potato-salad.
  3. Figura 3. Finestra di dialogo Testa i link dell'app che mostra un URL in fase di test e un messaggio di operazione riuscita.

  4. Fai clic su Esegui test.

Se il mapping degli URL non è configurato correttamente o non esiste, viene visualizzato un messaggio di errore sotto l'URL nella finestra di dialogo Testa link dell'app. In caso contrario, Android Studio avvia l'app nel dispositivo o nell'emulatore all'attività specificata senza mostrare la finestra di dialogo di disambiguazione ("selettore app") e mostra un messaggio di operazione riuscita nella finestra di dialogo Test dei link dell'app, come mostrato nella Figura 3.

Se Android Studio non riesce ad avviare l'app, nella finestra Esegui di Android Studio viene visualizzato un messaggio di errore.

Per testare i Link per app Android tramite l'Assistente link app, devi avere un dispositivo connesso o un dispositivo virtuale disponibile con Android 6.0 (livello API 23) o versioni successive. Per maggiori informazioni, scopri come connettere un dispositivo o creare una durata di visualizzazione media.