iOS
1. Iniciar instância
Como primeiro passo inicie uma instância do sdk a partir do:
let sdk = CieloWebViewSDK.getInstance()
2. Configuração inicial
Em seguida configure o SDK a partir do objeto CieloWebViewConfigData com os seguintes parâmetros:
| Parâmetro | Descrição | Obrigatório |
|---|---|---|
| clientId | Identificador do cliente usado para a autenticação Importante: Caso o clientId enviado seja inválido ou ausente o sdk retornará a exceção CieloWebViewSdkInvalidDataException para que o erro seja capturado e tratado. | Sim |
| clientSecret | Chave secreta do cliente usada para a autenticação | Não |
| loadingAnimation | Animação no formato LottieAnimation para ser exibida no loading do SDK, caso não seja passado o sdk exibirá um indicador de loading genérico. | Não |
let configData = CieloWebViewConfigData(
clientId: "CLIENT_ID",
loadingAnimation: LottieAnimation?)
//OU
let configData = CieloWebViewConfigData(
clientId: "CLIENT_ID")
do {
try sdk.setConfig(configData: configData)
} catch let error{
//adicionar tratamento de erro do setConfig
}
3. Abertura do WebView
Após configurado, a webview já pode ser aberta passando os seguintes parâmetros:
| Parâmetro | Descrição | Obrigatório |
|---|---|---|
| token | Token de autenticação | Sim |
| url | Chave secreta do cliente usada para a autenticação | Sim |
| data | Mapa de dados que pode ser consumido pelo MFE | Sim |
| listener | Interface para escutar eventos da WebView. | Sim |
| navigationController | Será utilizada para apresentar e fechar a tela da webview | Sim |
Feito isso podemos utilizar o sdk.openWebView(webViewData: webViewData) para abrir a webview
CieloWebViewSDKAuthErrorCaso tenha algum problema com o token enviado ;CieloWebViewSdkInvalidDataExceptionCaso a url passada seja inválida ;CieloWebViewSdkGenericExceptionEm caso de indisponibilidade em algum dos serviços .
Disponibilizamos uma interface CieloWebViewListener para acompanhamento do ciclo de vida da WebView, sendo implementada por quem vai consumir o SDK para reagir aos eventos retornados. Essa interface é descrita no próximo tópico
class WebViewListener: CieloWebViewListener {
func onWebViewStarted() {}
func onWebViewLoaded() {}
func onWebViewFinished() {}
func onWebViewError(exception: CieloWebViewSDKException) {}
func onWebViewUserInteraction(interaction: UserInteraction) {}
}
let webViewData = CieloWebViewOpenWebView(
token: "TOKEN",
url: "URL",
data: ["CHAVE" : "VALOR"],
listener: WebViewListener(),
navigationController: NAVIGATION CONTROLLER)
sdk.openWebView(webViewData: webViewData)