Aggiungi link per app Android

I link per app Android sono URL HTTP che indirizzano gli utenti direttamente a contenuti specifici della tua app per 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 consentire agli utenti di trovare e condividere più facilmente contenuti in un'app installata.

Per aggiungere il supporto per i link per app Android:

  1. Crea filtri per intent nel tuo manifest.
  2. Aggiungi codice alle attività della tua app per gestire i link in arrivo.
  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. L'Assistente link app aggiunge inoltre codice modello in ogni attività corrispondente per gestire l'intent.

Per aggiungere filtri per intent e gestione degli URL:

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

    L'Assistente Link alle 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 da mappare.

      Ad esempio, se hai un'app di condivisione di ricette con tutte le ricette disponibili nella stessa attività e le ricette del sito web corrispondente si trovano tutte nella stessa directory /recipe, utilizza pathPrefix e inserisci /recipe. 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 di intent per i link in arrivo.

    La finestra principale degli strumenti 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 relativi al manifest.

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

    Nota: per supportare i link futuri senza aggiornare l'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 venga incluso nei risultati di ricerca.

  4. Per verificare che il mapping degli 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 arrivo

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

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

L'Assistente Link dell'app aggiunge codice alla tua 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 ad 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 digitale 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 il generatore di file di Digital Asset Links dall'Assistente link app e segui questi passaggi:

L'Assistente Link alle 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 al tuo sito.In questo modo viene aggiunta la seguente stringa al file Digital Asset Links in cui dichiara che l'app e il sito web condividono le credenziali di accesso: delegate_permission/common.get_login_creds.

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

    Assicurati di selezionare il file di configurazione della release o del keystore corretto per la build della release oppure il file di configurazione di debug o dell'archivio chiavi per la 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.

L'App Link Assistant può convalidare il file Digital Asset Links da pubblicare sul tuo sito web. Per ogni dominio dichiarato nel file manifest, l'assistente analizza il file sul tuo sito web, esegue controlli di convalida e fornisce una spiegazione dettagliata su come correggere eventuali errori.

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

Testare i link per app Android

Per verificare che i link aprano l'attività corretta:

  1. Nell'Assistente Link di 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 link all'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, viene visualizzato un messaggio di errore nella finestra Esegui di Android Studio.

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