Aggiungi link per app Android

Gli app link Android sono URL HTTP che indirizzano gli utenti direttamente a contenuti specifici della tua app per Android. Gli app link Android possono generare più traffico verso la tua app, aiutarti a scoprire quali contenuti dell'app vengono utilizzati di più e semplificare la ricerca e la condivisione dei contenuti in un'app installata.

Per aggiungere il supporto per gli app link Android:

  1. Crea filtri per intent nel file manifest.
  2. Aggiungi codice alle attività dell'app per gestire i link in entrata.
  3. Associa l'app e il sito web a Digital Asset Links.

L'assistente per app link in Android Studio semplifica la procedura con una procedura guidata passo passo, come descritto di seguito.

Per saperne di più sul funzionamento degli app link e sui vantaggi che offrono, leggi Gestire gli app link Android.

Aggiungere filtri per intent

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

Per aggiungere filtri per intent e la gestione degli URL:

  1. Seleziona Strumenti > Assistente per app link.
  2. Fai clic su Apri editor di mapping degli URL e poi su Aggiungi nella parte inferiore dell'elenco Mapping degli URL per aggiungere un nuovo mapping degli URL.
  3. Aggiungi i dettagli per il nuovo mapping degli URL:

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

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

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

      Ad esempio, se hai un'app per la condivisione di ricette con tutte le ricette disponibili nella stessa attività e le ricette del sito web corrispondente si trovano tutte nella stessa /recipe directory, 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 di mapping degli URL. L'assistente per app link aggiunge i filtri per intent in base al mapping degli URL al AndroidManifest.xml file ed evidenzia le modifiche nel campo Anteprima. Se vuoi apportare modifiche, fai clic su Apri AndroidManifest.xml per modificare il filtro per intent. Per saperne di più, consulta Filtri per intent per i link in entrata.

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

    L'assistente per app link ti consente di correggere le configurazioni errate del file manifest.

    Nota: per supportare i link futuri senza aggiornare l'app, definisci un mapping degli URL che supporti gli URL che intendi aggiungere. Inoltre, includi un URL per la schermata Home dell'app in modo che sia incluso nei risultati di ricerca.

  4. Per verificare che il mapping degli URL funzioni correttamente, inserisci un URL nel campo Controlla il mapping degli URL.

    Se funziona correttamente, il messaggio di riuscita indica che l'URL inserito viene mappato all'attività selezionata.

Gestire i link in entrata

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

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

L'assistente per app link aggiunge codice all'attività, 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 di per sé. Ora devi intraprendere un'azione in base all'URI in appLinkData, ad esempio visualizzare i contenuti corrispondenti. Ad esempio, per l' app per la condivisione di ricette, il codice potrebbe avere il seguente aspetto:

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 per app link genera un file Digital Assets Links che puoi utilizzare per associare il tuo sito web alla tua app.

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

Se utilizzi la firma dell'app di Play per la tua app, la fingerprint del certificato generata dall'assistente per app link in genere 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 di Play Console in Release > Setup > App signing.

Per associare l'app e il sito web utilizzando l'assistente per app link, fai clic su Apri generatore di file Digital Asset Links dall'assistente per app link e segui questi passaggi:

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

Figura 2. Inserisci i dettagli del sito e dell'app per generare un file Digital Asset Links.

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

  3. Specifica la configurazione della firma o seleziona un file keystore.

    Assicurati di selezionare il file di configurazione della release o il file keystore corretto per la build di release o il file di configurazione di debug o il file keystore per la build di debug dell'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. Una volta che Android Studio genera 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, indipendentemente 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'assistente per app link può convalidare il file Digital Assets Links che deve essere pubblicato su 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ù sull'associazione del tuo sito web alla tua app tramite il file Digital Asset Links in Dichiarare le associazioni di siti web.

Testare gli app link Android

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

  1. Nell'assistente per app link, fai clic su Testa gli app link.
  2. Inserisci l'URL che vuoi testare nel campo URL; ad esempio, http://recipe-app.com/recipe/grilled-potato-salad.
  3. Figura 3. Finestra di dialogo Testa gli app link che mostra un URL in fase di test e un messaggio di 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 gli app link. 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 riuscita nella finestra di dialogo Test degli app link, 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 gli app link Android tramite l'assistente per app link, devi avere un dispositivo connesso o un dispositivo virtuale disponibile con Android 6.0 (livello API 23) o versioni successive. Per saperne di più, leggi come connettere un dispositivo o creare un AVD.