Ao implementar o recurso de vinculação de apps, teste essa funcionalidade para verificar se o sistema consegue associar seu app aos sites e processar solicitações de URL conforme esperado.
Para testar um arquivo de instrução existente, use a ferramenta Statement List Generator and Tester.
As seções a seguir descrevem como testar manualmente a verificação de App Links. Se preferir, teste a verificação com a ferramenta de links diretos do Google Play ou o assistente de Links do app do Android Studio.
Confirmar a lista de hosts a serem verificados
Durante os testes, confirme a lista de hosts associados que o sistema precisa verificar para o app. Faça uma lista de todos os URLs cujos filtros de intent correspondentes incluem os seguintes atributos e elementos:
- Atributo
android:scheme
com um valor dehttp
ouhttps
- Atributo
android:host
com um padrão de URL de domínio - Elemento de ação
android.intent.action.VIEW
- Elemento de categoria
android.intent.category.BROWSABLE
Use essa lista para verificar se um arquivo JSON do Digital Asset Links foi disponibilizado para cada host e subdomínio nomeado.
Confirmar os arquivos Digital Asset Links
Para cada site, use a API Digital Asset Links para confirmar se o arquivo JSON Digital Asset Links está hospedado e definido corretamente:
https://digitalassetlinks.googleapis.com/v1/statements:list?
source.web.site=https://<var>domain.name</var>:<var>optional_port</var>&
relation=delegate_permission/common.handle_all_urls
No caso dos links dinâmicos de apps, também é possível verificar as extensões de relação.
https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://www.example.com&relation=delegate_permission/common.handle_all_urls&return_relation_extensions=true
Verificar políticas de links
Como parte do processo de testes, é possível verificar as definições atuais do sistema para o processamento de links. Use o comando a seguir para ver uma lista das políticas de processamento de links já existentes para todos os apps no dispositivo conectado:
adb shell dumpsys package domain-preferred-apps
O comando a seguir faz a mesma coisa:
adb shell dumpsys package d
O comando retorna uma lista de cada usuário ou perfil definido no dispositivo, precedida por um cabeçalho no seguinte formato:
App linkages for user 0:
Depois desse cabeçalho, o resultado usa o seguinte formato para listar as configurações de processamento de links para esse usuário:
Package: com.android.vending
Domains: play.google.com market.android.com
Status: always : 200000002
A lista indica quais apps foram associados a cada domínio para o usuário:
Package
: identifica um app pelo nome do pacote, como declarado no manifesto.Domains
: mostra a lista completa de hosts cujos links da Web são processados pelo app, usando espaços em branco como delimitadores.Status
: mostra a configuração atual de processamento de links para o app. Um app que passou na verificação e cujo manifesto contémandroid:autoVerify="true"
mostra o statusalways
. O número hexadecimal depois desse status está relacionado ao registro do sistema Android das preferências de vinculação de app do usuário. Esse valor não indica se a verificação foi concluída.
Exemplo de teste
Para que a verificação de vinculação de app seja realizada corretamente, o sistema precisa verificar seu app com cada um dos sites especificados em um determinado filtro de intent que atenda aos critérios de vinculação de app. O exemplo abaixo mostra uma configuração de manifesto com diversos links de apps definidos:
<activity android:name=”MainActivity”>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:scheme="https" />
<data android:host="www.example.com" />
<data android:host="mobile.example.com" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:host="www.example2.com" />
</intent-filter>
</activity>
<activity android:name=”SecondActivity”>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:host="account.example.com" />
</intent-filter>
</activity>
<activity android:name=”ThirdActivity”>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="https" />
<data android:host="map.example.com" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="market" />
<data android:host="example.com" />
</intent-filter>
</activity>
</application>
A lista de hosts que a plataforma tentaria verificar do manifesto anterior é:
www.example.com
mobile.example.com
www.example2.com
account.example.com
A lista de hosts que a plataforma não tentaria verificar do manifesto anterior é:
map.example.com (it does not have android.intent.category.BROWSABLE)
market://example.com (it does not have either an "http" or "https" scheme)
Para saber mais sobre listas de instruções, consulte Criar uma lista de instruções.