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 já existente, use a ferramenta Statement List Generator and Tester.
As seções a seguir descrevem como testar a verificação de Links do app manualmente. Se preferir, você pode testar a verificação na ferramenta Play Deep Links ou no 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 todas os URLs da Web com filtros de intent que incluem os seguintes atributos e elementos:
- Atributo
android:schemecom um valor dehttpouhttps - Atributo
android:hostcom 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 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
Para Links do app dinâmicos, 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 seguinte comando 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 este 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 refere-se 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 bem-sucedida.
Exemplo de teste
Para que a verificação de Links do app seja bem-sucedida, o sistema precisa verificar seu app com cada um dos sites especificados em um determinado filtro de intent que atenda aos critérios de Links do app. O exemplo abaixo mostra uma configuração de manifesto com diversos Links do app 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