Sintassi dell'elenco di istruzioni

Un elenco di dichiarazioni è un file o uno snippet codificato in JSON in una posizione nota.

Posizione dell'elenco degli estratti conto

Consulta l'articolo Creare un elenco di dichiarazioni per scoprire dove deve essere archiviato questo elenco.

Sintassi

L'elenco o lo snippet di istruzioni è costituito da un array JSON di una o più istruzioni di siti web o app come oggetti JSON. Queste istruzioni possono essere in qualsiasi ordine. Ecco la sintassi generale:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
relation
Un array di una o più stringhe che descrivono la relazione dichiarata in merito alla destinazione. Consulta l'elenco delle stringhe di relazione definite. Esempio: delegate_permission/common.handle_all_urls
target
L'asset di destinazione a cui si applica questa dichiarazione. Tipi di target disponibili:
relation_extensions (facoltativo)

Puoi aggiungere un campo relation_extensions facoltativo a un'affermazione per fornire maggiori informazioni sulle autorizzazioni e sulle associazioni che vuoi concedere. Questo campo deve essere un oggetto in cui ogni chiave è una stringa di relazione e il valore è un oggetto contenente le estensioni per quella relazione. I client che richiedono queste istruzioni devono essere aggiornati per rispettare questi campi.

Ad esempio, relation_extensions per la relazione delegate_permission/common.handle_all_urls potrebbe avere il seguente aspetto:

  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.app",
      "sha256_cert_fingerprints": ["..."]
    },
    "relation_extensions": {
      "delegate_permission/common.handle_all_urls": {...}
    }
  }
  

L'API DAL supporta la restituzione di relation_extensions nelle chiamate API quando il parametro return_relation_extensions=true è impostato nella richiesta.

Elenco delle dichiarazioni di esempio

Ecco un elenco di istruzioni del sito web di esempio che contiene istruzioni su siti web e app: http://example.digitalassetlinks.org/.well-known/assetlinks.json

Scalabilità a decine di istruzioni o più

In alcuni casi, un soggetto potrebbe voler fare molte dichiarazioni diverse su target diversi oppure potrebbe essere necessario emettere dichiarazioni da soggetti diversi allo stesso insieme di target. Ad esempio, un sito web potrebbe essere disponibile su molti domini di primo livello per paese diversi e tutti potrebbero voler fare una dichiarazione sulla stessa app mobile.

In queste situazioni, possono essere utili le dichiarazioni di inclusione. Utilizzando questo meccanismo, puoi configurare puntatori da molti principal diversi a una posizione centrale, che definisce le istruzioni per tutti i principal.

Ad esempio, potresti decidere che la posizione centrale deve essere `https://example.com/includedstatements.json`. Questo file può essere configurato in modo da contenere gli stessi contenuti degli esempi precedenti.

Per impostare un puntatore da un sito web al file di inclusione, modifica `https://example.com/.well-known/assetlinks.json` in:

[{
  "include": "https://example.com/includedstatements.json"
}]

Per impostare un puntatore da un'app per Android al file include, modifica `res/values/strings.xml` in:

<resources>
  ...
  <string name="asset_statements">
    [{
      \"include\": \"https://example.com/includedstatements.json\"
    }]
  </string>
</resources>

Ulteriori informazioni

Nel nostro documento delle specifiche è disponibile una spiegazione più dettagliata del formato dell'elenco delle istruzioni e dei concetti sottostanti.