Uma lista de declarações é um arquivo ou snippet codificado em JSON em um local conhecido.
Local da lista de instruções
Consulte Criar uma lista de instruções para saber onde ela deve ser armazenada.
Sintaxe
A lista ou o snippet de declarações consiste em uma matriz JSON de uma ou mais declarações de sites ou apps como objetos JSON. Essas declarações podem estar em qualquer ordem. Esta é a sintaxe geral:
[ { "relation": ["relation_string"], "target": {target_object} } , ... ]
- relation
- Uma matriz de uma ou mais strings que descrevem a relação que está sendo declarada sobre o valor desejado. Consulte a lista de strings de relação definidas. Exemplo:
delegate_permission/common.handle_all_urls
- target
- O recurso de destino a que esta declaração se aplica. Tipos de destino disponíveis:
- relation_extensions (opcional)
-
Você pode adicionar um campo
relation_extensions
opcional a uma declaração para fornecer mais informações sobre as permissões e associações que quer conceder. Esse campo precisa ser um objeto em que cada chave é uma string de relação, e o valor é um objeto que contém as extensões dessa relação. Os clientes que solicitam essas declarações precisam ser atualizados para respeitar esses campos.Por exemplo,
relation_extensions
para a relaçãodelegate_permission/common.handle_all_urls
pode ter esta aparência:{ "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": {...} } }
A API DAL permite retornar relation_extensions em chamadas de API quando o parâmetro
return_relation_extensions=true
é definido na solicitação.
Exemplo de lista de declarações
Confira um exemplo de lista de declarações de sites que contém declarações sobre sites e apps: http://example.digitalassetlinks.org/.well-known/assetlinks.json
Como escalonar para dezenas de instruções ou mais
Em alguns casos, um principal pode querer fazer várias declarações diferentes sobre diferentes destinos, ou pode ser necessário emitir declarações de diferentes principais para o mesmo conjunto de destinos. Por exemplo, um site pode estar disponível em vários domínios de nível superior diferentes por país, e todos eles podem querer fazer uma declaração sobre o mesmo app para dispositivos móveis.
Nessas situações, as instruções de inclusão podem ser úteis. Com esse mecanismo, é possível configurar ponteiros de vários principais diferentes para um local central, que define instruções para todos os principais.
Por exemplo, você pode decidir que o local central será `https://example.com/includedstatements.json`. Esse arquivo pode ser configurado para conter o mesmo conteúdo dos exemplos acima.
Para configurar um ponteiro de um site para o arquivo de inclusão, mude `https://example.com/.well-known/assetlinks.json` para:
[{ "include": "https://example.com/includedstatements.json" }]
Para configurar um ponteiro de um app Android para o arquivo de inclusão, mude `res/values/strings.xml` para:
<resources> ... <string name="asset_statements"> [{ \"include\": \"https://example.com/includedstatements.json\" }] </string> </resources>
Mais informações
Há uma explicação mais detalhada do formato da lista de declarações e dos conceitos básicos no nosso documento de especificação.