Criar conta grátis

Documentação
Ver em Markdown

Verificação em aplicativo

Verificação em aplicativo

Seu aplicativo abre a verificação numa WebView, o titular faz tudo sem sair do app, e o app fecha a tela sozinho quando termina. É o mesmo fluxo do navegador, com o mesmo widget e o mesmo webhook: o que muda é a configuração da WebView, porque as duas plataformas nascem com defaults que atrapalham a câmera.

Você tem duas portas, e as duas funcionam aqui. Pode carregar na WebView a sua própria página com o widget montado, ou pode carregar direto o link de verificação hospedado, que é uma página nossa e não exige front nenhum do seu lado. Em qualquer uma delas, a hora de fechar a tela chega pelo evento que o widget dispara, descrito em O Widget.

iOS (WKWebView)

A permissão de câmera é do app hospedeiro, nunca da página: declare o uso no app e peça a permissão nativa antes de abrir a tela da verificação. Feito isso, três ajustes decidem se a captura acontece dentro da sua tela ou não acontece.

ajustedefault da plataformadeixar como está significa
allowsInlineMediaPlaybackfalse no iPhone, true no iPadNo iPhone, com o default, o vídeo da câmera tenta abrir em tela cheia nativa e a captura não acontece dentro da sua tela. Ligue.
getUserMedia (WKWebView, iOS 14.3+)exposto só quando o app hospedeiro pode capturar nativamenteDeclare o uso da câmera no app e peça a permissão nativa. Sem isso a API simplesmente não existe dentro da WebView.
requestMediaCapturePermissionFor (iOS 15+)prompt padrão do sistemaImplemente se quiser decidir a permissão no seu código, em vez de deixar o prompt padrão aparecer por cima da sua tela.
Android (WebView)

Aqui são quatro, e o primeiro é o que mais aparece em chamado de integração: a WebView do Android nasce sem JavaScript.

ajustedefault da plataformadeixar como está significa
setJavaScriptEnabledfalseCom o default a verificação não carrega. Ligue.
setMediaPlaybackRequiresUserGesturetrueCom o default o vídeo da câmera só começa depois de um toque extra do titular, dentro de uma tela que já pediu um. Desligue.
setDomStorageEnabledfalseCom o default o titular que sai do app e volta recomeça do zero. Ligue e a verificação retoma de onde parou.
onPermissionRequest (WebChromeClient)negado, quando não implementadoA permissão de câmera é decisão do seu app, não da nossa página. Sem implementar, a câmera nunca abre.
COMO O APP SABE QUE ACABOU

O widget avisa a página quando a verificação termina, e essa é a deixa para o app fechar a WebView. Numa WebView React Native o aviso chega sozinho por postMessage; numa WebView nativa, injete uma linha que reenvia o aviso pela ponte que você já usa com a sua tela. O contrato completo do evento, com o payload, os três canais e quando cada campo vem preenchido, está em O Widget.

// Injetado na WebView: reenvia o fim da verificação para o código nativo.
// O nome do evento e o formato do payload estão na página do Widget.
window.addEventListener("unifokal:done", (ev) => {
  pontePraNativo(JSON.stringify(ev.detail));
});

E o desfecho de verdade continua chegando ao seu servidor. O evento fecha a tela; quem libera, credita ou dá por concluído é o webhook assinado. Um app que decide pelo evento está decidindo por um sinal que vive no navegador.

O QUE ESTA INTEGRAÇÃO COBRE

Esta página cobre a verificação dentro da sua WebView: câmera, captura, fluxo completo e o aviso de fim. Leitura de chip por NFC e atestação de dispositivo pelos serviços da Apple e do Google não fazem parte dela. Se o seu caso pede um desses, fale com a gente antes de desenhar a tela.

Pronto para integrar? A chave de sandbox sai no painel, logo depois do cadastro. Criar conta grátis