# Integração WebView e IFrame

Esta seção tem como objetivo ajudar na integração dos links de onboarding em WebView e IFrame.

# WebView

Android

Nas integrações do onboarding web em WebView no Android é necessário definir a configuração setDomStorageEnabled da WebView para true para o funcionamento correto do onboarding. Ex.: myWebView.getSettings().setDomStorageEnabled(true);

Outras plataformas

Nas demais plataformas (IOS, Flutter, React Native, etc.) a criação da WebView não depende de nenhuma configuração específica.

# IFrame

Para integrar o onboarding dentro de um IFrame pode ser usado o código de exemplo abaixo, é necessário somente dar permissão de acesso à câmera do dispositivo no atributo allow.

<iframe src="https://cadastro.io/:token" allow="camera"></iframe>

Outro ponto de atenção é que nosso onboarding não irá funcionar dentro de um IFrame caso o usuário tenha habilitado em seu navagador a configuração Bloquear cookies de terceiros. Essa configuração é mais comum em casos aonde o usuário acessa a página a partir de uma aba anônima.

# Eventos emitidos

Nosso onboarding emite eventos utlizando o window.postMessage() (opens new window) para comunicar o iframe ou webview de alguns acontecimentos durante o processo. Atualmente temos suporte dos eventos para IFrame, Flutter* e React Native.

Os eventos emitidos hoje são os seguintes:

  • SDK_CAPTURE_INVALID: Será disparado quando a captura for inválida, como um documento incorreto ou baixa qualidade da imagem. (Document Detector e Passive Face Liveness)
  • SDK_CAPTURE_FAILED: Alguma outra falha na captura. (Document Detector e Passive Face Liveness)
  • SDK_BACK_CAPTURE_STARTED: Iniciou captura do verso do documento. (Document Detector)
  • SDK_FRONT_CAPTURE_STARTED: Iniciou captura da frente do documento. (Document Detector)

*Flutter

No Flutter deve ser usado o recurso Web Message Listeners (opens new window) do Flutter InAppWebView, sendo passado no campo jsObjectName o valor FlutterOnboardingChannel.