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âmetro | Descrição | Obrigatório |
|---|---|---|
| appPackageName | Nome do pacote do app hospedeiro (ex.: com.example.seuapp). | Sim |
| authorityFileProvider | Autoridade do FileProvider definida no AndroidManifest.xml. Necessário para permitir download de arquivos (ex.: extratos). | Sim |
| clientId | Identificador do cliente usado para a autenticação. | Sim |
| clientSecret | Chave secreta do cliente usada para a autenticação. | Não |
| uiConfig | Atributos 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ção | Descrição |
|---|---|
| CieloWebViewSdkInvalidDataException | Lanç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âmetro | Descrição | Obrigatório |
|---|---|---|
| token | Token parceiro JWT, utilizado para efetuar a autenticação nos ambientes Cielo. | Sim |
| url | URL do MFE a ser carregado na WebView. | Sim |
| data | Mapa de dados que pode ser consumido pelo MFE. | Não |
| listener | Interface para capturar eventos da WebView. | Não |
O valor do parâmetro
authorityFileProviderdeve 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
onWebViewFinishedser 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ção | Descrição |
|---|---|
| CieloWebViewSdkAlreadyInProgressException | Lançada quando já existe uma WebView em execução e uma nova tentativa de abertura é feita simultaneamente. |
| CieloWebViewSdkInvalidDataException | Lançada quando os parâmetros token ou url são inválidos ou nulos. |
| CieloWebViewSdkGenericErrorException | Lançada em casos de falhas inesperadas ou não categorizadas durante a inicialização da WebView. |