Android

1. Configuração inicial

Antes de abrir a WebView, configure o SDK utilizando o método setConfig.

CieloWebViewSdk.getInstance().setConfig(
    CieloWebViewSdkConfigData(
        appPackageName = "SEU_PACKAGE_NAME",
        authorityFileProvider = "SEU_AUTHORITY_FILE_PROVIDER",
        clientId = "SEU_CLIENT_ID",
        clientSecret = "SEU_CLIENT_SECRET",
        uiConfig = CieloWebViewSdkConfigData.UiConfig(
            theme = R.style.CieloWebViewSdkDefaultTheme,
            loadingLottie = CieloWebViewSdkConfigData.UiConfig.LoadingLottie(
                lottieRes = R.raw.sua_animacao,
                lottieWidth = R.dimen.sua_dimen,
                lottieHeight = R.dimen.sua_dimen
            )
        )
    )
)

Parâmetros

ParâmetroDescriçãoObrigatório
appPackageNameNome do pacote do app hospedeiro (ex.: com.example.seuapp).Sim
authorityFileProviderAutoridade do FileProvider definida no AndroidManifest.xml. Necessário para permitir download de arquivos (ex.: extratos).Sim
clientIdIdentificador do cliente usado para a autenticação.Sim
clientSecretChave secreta do cliente usada para a autenticação.Não
uiConfigAtributos personalizáveis da UI.Não

Exemplo de FileProvider

Inclua a seguinte configuração no AndroidManifest.xml para permitir downloads:

<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</provider>

Exemplo do arquivo file_paths.xml:

<paths>
    <cache-path
        name="cache"
        path="." />
</paths>

Tema padrão

O SDK fornece um tema padrão que pode ser utilizado ou sobrescrito:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CieloWebViewSdkDefaultTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:statusBarColor">#FFFFFF</item>
        <item name="android:windowLightStatusBar">true</item>
        <item name="colorAccent">#0774E7</item>
    </style>
</resources>
📘

O parâmetro uiConfig é opcional. Utilize-o apenas se desejar personalizar a interface com as opções disponíveis atualmente: animação de loading (via Lottie).

Possíveis exceções

As seguintes exceções podem ocorrer durante a execução do método setConfig(). Recomenda-se envolver a chamada da função em um bloco try-catch para capturar e tratar adequadamente os erros.

ExceçãoDescrição
CieloWebViewSdkInvalidDataExceptionLançada quando o appPackageName, authorityFileProvider ou clientId forem inválidos.

2. Abertura da WebView

Para iniciar a WebView, utilize o método openWebView(). Esse método abre uma nova Activity com o conteúdo do MFE(Micro Front End).

CieloWebViewSdk.getInstance().openWebView(
    context = this,
    param = CieloWebViewSdkOpenWebView(
        token = "SEU_TOKEN",
        url = "https://sua-url.com",
        data = mapOf("chave" to "valor"),
        listener = object : CieloWebViewSdkListener {
            override fun onWebViewStarted() { }

            override fun onWebViewLoaded() { }

            override fun onWebViewFinished() { }

            override fun onWebViewError(exception: CieloWebViewSdkException) { }

            override fun onWebViewUserInteraction(interaction: CieloWebViewSdkUserInteraction) { }
        }
    )
)
             

Parâmetros

ParâmetroDescriçãoObrigatório
tokenToken parceiro JWT, utilizado para efetuar a autenticação nos ambientes Cielo.Sim
urlURL do MFE a ser carregado na WebView.Sim
dataMapa de dados que pode ser consumido pelo MFE.Não
listenerInterface para capturar eventos da WebView.Não
📘

O valor do parâmetro authorityFileProvider deve ser exatamente o mesmo definido em: android:authorities="${applicationId}.fileprovider".

👍

Durante a exibição da WebView, evite realizar alterações diretas na interface (UI) do aplicativo que consome o SDK. Qualquer modificação em componentes visuais deve ser feita apenas após o encerramento da WebView (após o método onWebViewFinished ser executado). Alterações que não envolvem a thread de UI (como chamadas de rede ou manipulação de dados) podem ser executadas normalmente.

Possíveis exceções

As seguintes exceções podem ocorrer durante a execução do método openWebView(). Recomenda-se envolver a chamada da função em um bloco try-catch para capturar e tratar adequadamente os erros.

ExceçãoDescrição
CieloWebViewSdkAlreadyInProgressExceptionLançada quando já existe uma WebView em execução e uma nova tentativa de abertura é feita simultaneamente.
CieloWebViewSdkInvalidDataExceptionLançada quando os parâmetros token ou url são inválidos ou nulos.
CieloWebViewSdkGenericErrorExceptionLançada em casos de falhas inesperadas ou não categorizadas durante a inicialização da WebView.