Como começar

Visão geral

O protocolo e a API Digital Asset Links permitem que um app ou site publique instruções públicas e verificáveis sobre outros apps ou sites. Por exemplo, um site pode declarar que está associado a um app Android específico ou que quer compartilhar credenciais de usuário com outro site.

Aqui estão alguns usos possíveis para os Links de recursos digitais:

  • O site A declara que os links para o próprio site precisam ser abertos em um app designado em dispositivos móveis, caso o app esteja instalado.
  • O site A declara que pode compartilhar as credenciais de usuário do Chrome com o site B para que o usuário não precise fazer login no site B se estiver conectado ao site A.
  • O app A declara que pode compartilhar configurações do dispositivo, como a localização, com o site B.

Termos-chave

  • Principal:é o app ou site que fez a declaração. No Digital Asset Links, o principal é sempre o app ou site que hospeda a lista de instruções.
  • Lista de instruções: as instruções estão contidas em uma lista que contém uma ou mais instruções. Uma lista de instruções é um texto não criptografado e acessível ao público, em um local controlado pelo principal e difícil de falsificar ou adulterar. Pode ser um arquivo independente ou uma seção de outro item maior. Por exemplo, em um site, é um arquivo inteiro. Em um app Android, é uma seção no manifesto do app. As declarações podem ser visualizadas e verificadas por qualquer pessoa, usando métodos não reservados. Para mais informações, consulte a documentação da lista de instruções.
  • Instrução : uma instrução é uma construção JSON bem estruturada que consiste em uma relation (o que a instrução diz para fazer, por exemplo: ativar credenciais de compartilhamento) e um relation (o site ou app a que a relação se aplica). Portanto, cada instrução é como uma sentença, em que a principal diz relação sobre destino.
  • Consumidor de declaração:um consumidor de declaração solicita uma lista de instruções de um principal, verifica a presença de uma instrução em relação a um determinado principal e, se houver, pode executar a ação especificada. Para mais informações, consulte a instrução que resume a documentação.

Exemplo de uso rápido

Veja um exemplo muito simplificado de como o site www.example.com poderia usar Digital Asset Links para especificar que todos os links para URLs nesse site devem ser abertos em um app designado, e não no navegador:

  1. O site www.example.com publica uma lista de instruções em https://www.example.com/.well-known/assetlinks.json. Esse é o nome e o local oficiais de uma lista de instruções em um site. Listas de instruções em qualquer outro local, ou com qualquer outro nome, não são válidas para este site. No nosso exemplo, a lista de instruções consiste em uma instrução, concedendo ao app Android a permissão para abrir links no site:
    [{
      "relation": ["delegate_permission/common.handle_all_urls"],
      "target" : { "namespace": "android_app", "package_name": "com.example.app",
                   "sha256_cert_fingerprints": ["hash_of_app_certificate"] }
    }]
    Uma lista de instruções oferece suporte a uma matriz de instruções dentro das marcas [ ], mas o arquivo de exemplo contém apenas uma instrução. sha256_cert_fingerprints são as impressões digitais SHA256 do certificado de assinatura do app. Encontre mais detalhes na documentação dos Links do app Android.
  2. O app Android listado na instrução acima tem um filtro de intent que especifica o esquema, o host e o padrão de caminho dos URLs que quer processar: neste caso, https://www.example.com. O filtro de intent inclui um atributo especial android:autoVerify, novo no Android M, que indica que o Android precisa verificar a instrução no site descrito no filtro de intent quando o app for instalado.
  3. Um usuário instala o app. O Android vê o filtro de intent com o atributo autoVerify e verifica a presença da lista de instruções no site especificado. Se houver, o Android confere se o arquivo inclui uma declaração que concede o processamento de links para o app e compara o app com a declaração por hash de certificado. Se tudo estiver correto, o Android encaminhará todas as intenções de https://www.example.com para o aplicativo example.com.
  4. O usuário clica em um link para https://www.example.com/puppies no dispositivo. Esse link pode estar em qualquer lugar: em um navegador, em uma sugestão do Google Search Appliance ou em qualquer outro lugar. O Android encaminha a intent para o app example.com.
  5. O app example.com recebe a intent e escolhe processá-la, abrindo a página de filhotes no app. Se, por algum motivo, o app se recusasse a processar o link ou se o app não estivesse no dispositivo, o link seria enviado para o próximo gerenciador de intent padrão correspondente a esse padrão de intent, geralmente o navegador.

Considerações e limitações importantes:

  • O protocolo não autentica o principal que faz a declaração, mas está localizada em um local específico fortemente associado ao principal e sob o controle dele.
  • O protocolo não autentica o destino da instrução, mas fornece um meio para que o autor da chamada autentique o destino (por exemplo, uma instrução identifica destinos de apps para dispositivos móveis por hash de certificado e nome do pacote).
  • O protocolo não executa nativamente nenhuma ação de instrução. Em vez disso, ele permite expor instruções, que um aplicativo consumidor precisa validar e decidir se e como agir. O Android M executa essas etapas de forma nativa para você. Por exemplo, se um site delega o processamento de links a um app específico, o Android confere e confere a instrução, confere o app de destino e oferece ao app a opção de processar o link fornecido.
  • O protocolo não permite fazer declarações sobre dois terceiros: ou seja, o site A pode fazer uma declaração sobre o site B, mas o site A não pode fazer uma declaração sobre o relacionamento do site B com o site C. No entanto, se o site B confiar no site A, ele poderá verificar se há uma instrução que concede permissão ao site C e decidir implementá-la.

Próximas etapas

  1. Verifique se há documentação explícita para seu caso de uso.
  2. Saiba como criar uma instrução.