Kapan Menggunakan WebView
Gunakan integrasi WebView hanya ketika:- Anda membangun di platform yang tidak memiliki SDK native (misalnya Xamarin, Cordova, atau framework khusus lainnya)
- Anda memerlukan prototipe cepat atau bukti konsep sebelum mengintegrasikan SDK native
- Anda bermigrasi dari web dan membutuhkan jembatan sementara menuju integrasi native
Cara Kerjanya
1
Buat sesi
Backend Anda memanggil API Create Session dan menerima
url yang di-hosting.2
Buka di WebView
Aplikasi Anda memuat
url di komponen WebView.3
Pengguna menyelesaikan verifikasi
Pengguna menjalani alur verifikasi di dalam WebView.
4
Cegat callback
Setelah selesai, WebView dialihkan ke URL callback Anda. Aplikasi Anda mencegat navigasi ini dan mengekstrak hasilnya.
5
Dapatkan hasil lengkap melalui webhook
Backend Anda menerima data keputusan lengkap melalui webhook.
Membuat Sesi
Sebelum membuka alur verifikasi, buat sesi dari backend Anda:201, url menyematkan session_token yang terdiri dari 12 karakter, bukan session_id):
url di WebView. Jangan pernah membangunnya secara manual dari session_token.
React Native
Instal paket WebView:Implementasi
Demo React Native
Contoh verifikasi Expo + WebView
Flutter
Tambahkan paket yang diperlukan kepubspec.yaml:
Implementasi
Demo Flutter
Contoh verifikasi WebView Flutter
Konfigurasi Penting
User Agent (Wajib)
Anda harus mengatur user agent seluler generik agar WebView berfungsi dengan benar:Pengaturan Media (Wajib)
Menangani Callback
Setelah verifikasi, WebView dialihkan ke URL callback Anda dengan parameter query:Pemecahan Masalah
Kamera tidak berfungsi
Kamera tidak berfungsi
- Pastikan
mediaPlaybackRequiresUserGesturebernilaifalse - Pastikan izin kamera sudah diberikan di tingkat OS
- Periksa bahwa string user agent sudah diatur dengan benar
Layar putih atau masalah pemuatan
Layar putih atau masalah pemuatan
- Pastikan URL sesi valid dan belum kedaluwarsa
- Periksa koneksi internet
- Pastikan JavaScript diaktifkan di pengaturan WebView
Callback tidak terpicu
Callback tidak terpicu
- Pastikan URL callback Anda sama dengan yang Anda atur saat membuat sesi
- Periksa bahwa delegate/listener navigasi sudah dikonfigurasi dengan benar
- Coba atur
callback_methodke"both"saat membuat sesi