Android
Para o cenário de uso em Android, o uso de Webview é recomendado.
Após criar a transação e obter o link da transação, a seguinte implementação é recomendada:
Em seu fluxo comum (que está inserido o IDPay), você irá abrir a Webview com o link gerado via API;
Você poderá customizar essa abertura da maneira que for o ideal para seu aplicativo;
Irá monitorar se houve alteração de URL (para a redirectUrl) e então feche a Webview;
Para abrir uma Webview é bem simples:
import android.webkit.PermissionRequest
import android.webkit.WebChromeClient
import android.webkit.WebView
import android.webkit.WebViewClient
@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_camera)
findViewById<WebView>(R.id.webView).apply {
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
settings.mediaPlaybackRequiresUserGesture = false
clearCache(true)
webViewClient = myWebViewClient
webChromeClient = object : WebChromeClient() {
override fun onPermissionRequest(request: PermissionRequest?) {
request?.grant(request.resources)
}
}
loadUrl("<URL_TO_LOAD>")
}
}
Para controlar quando é necessário fechar o Webview pode ser feito da seguinte maneira:
private val myWebViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(
view: WebView?,
request: WebResourceRequest?
): Boolean {
if (request?.url.toString() == "<URL_TO_OBSERVER>") {
// close here your webview
}
return super.shouldOverrideUrlLoading(view, request)
}
}
Para isso é necessário habilitar permissões na Android Manifest:
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-permission android:name="android.permission.CAMERA"/>
Exemplo de como deverá ficar no app:
É necessário algumas permissões para funcionar corretamente, tais como:
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.