Saltar para o conteúdo principal
Este guia explica como incorporar o fluxo de verificação web da Didit dentro de um componente WebView de uma aplicação móvel nativa. Não é o mesmo que os SDKs nativos para iOS, Android, React Native ou Flutter. Trata-se de uma alternativa para plataformas que não conseguem usar um SDK nativo.

Prefira sempre os SDKs nativos

Existem SDKs nativos para iOS, Android, React Native e Flutter. Oferecem um desempenho significativamente melhor, um tratamento da câmara superior, leitura NFC de passaportes e documentos de identificação, integração biométrica e uma melhor experiência do utilizador. Utilize a WebView apenas se não existir um SDK nativo para a sua plataforma.

SDK para iOS

SDK nativo em Swift para iOS 13+

SDK para Android

SDK nativo em Kotlin para Android 6.0+

SDK para React Native

API TypeScript multiplataforma. Compatível com Expo.

SDK para Flutter

API Dart multiplataforma. Pacote pub.dev.

Quando utilizar a WebView

Utilize a integração WebView apenas quando:
  • Estiver a desenvolver numa plataforma sem SDK nativo (por exemplo, Xamarin, Cordova ou outras frameworks de nicho)
  • Precisar de um protótipo rápido ou de uma prova de conceito antes de integrar o SDK nativo
  • Estiver a migrar da web e quiser uma ponte temporária para uma integração nativa

Como funciona

1

Criar uma sessão

O seu backend chama a API de criação de sessões e recebe um url alojado.
2

Abrir na WebView

A sua aplicação carrega o url num componente WebView.
3

O utilizador conclui a verificação

O utilizador percorre o fluxo de verificação dentro da WebView.
4

Intercetar o callback

Quando terminar, a WebView navega para o seu URL de retorno. A sua aplicação interceta esta navegação e extrai o resultado.
5

Obter os resultados completos através do webhook

O seu backend recebe os dados completos da decisão através do webhook.

Criar uma sessão

Antes de abrir o fluxo de verificação, crie uma sessão a partir do seu backend:
Resposta (201: o url incorpora o session_token de 12 caracteres, não o session_id):
Carregue o campo url na WebView. Nunca o construa manualmente a partir de session_token.

React Native

Instale o pacote WebView:

Implementação

Demonstração de React Native

Exemplo de verificação com Expo e WebView

Flutter

Adicione os pacotes necessários ao pubspec.yaml:

Implementação

Demonstração de Flutter

Exemplo de verificação com WebView em Flutter

Configuração crítica

User agent (obrigatório)

Tem de definir um user agent genérico de dispositivo móvel para que a WebView funcione corretamente:
Isto garante o acesso correto à câmara, a renderização correta da interface e a reprodução multimédia otimizada.

Definições de multimédia (obrigatórias)


Tratar o callback

Após a verificação, a WebView redireciona para o seu URL de retorno com parâmetros de consulta:
Para uma melhor experiência do utilizador, use um esquema de URL personalizado (por exemplo, myapp://verification-complete) como callback e trate-o como um deep link na sua aplicação.

Resolução de problemas

  1. Certifique-se de que mediaPlaybackRequiresUserGesture é false
  2. Verifique se as permissões da câmara estão concedidas ao nível do sistema operativo
  3. Confirme que a string do user agent está definida corretamente
  1. Verifique se o URL da sessão é válido e não expirou
  2. Confirme a ligação à internet
  3. Certifique-se de que o JavaScript está ativado nas definições da WebView
  1. Verifique se o seu URL de retorno corresponde ao que definiu ao criar a sessão
  2. Confirme que o delegate ou listener de navegação está configurado corretamente
  3. Experimente definir callback_method como "both" ao criar a sessão

Última modificação em 7 de novembro de 2026