Browser dalam aplikasi memberikan pengalaman web penuh kepada pengguna tanpa membuat mereka keluar dari aplikasi Anda. Android menawarkan dua API utama untuk menerapkan browser dalam aplikasi: Tab Kustom dan WebView. Gunakan browser dalam aplikasi saat Anda memiliki link atau iklan yang mengarah ke halaman web. Anda dapat membuka halaman tersebut langsung di dalam aplikasi, seperti yang dapat Anda lihat di Gambar 1.
Memilih antara Tab Kustom dan WebView adalah keputusan arsitektur besar yang memengaruhi kecepatan pengembangan, pengalaman pengguna, dan seberapa besar kontrol yang Anda miliki atas UI.
Perbandingan cepat
Gunakan tabel berikut untuk membantu Anda memutuskan alat mana yang sesuai dengan kebutuhan Anda:
| Fitur | WebView | Tab Kustom |
|---|---|---|
| Kasus penggunaan utama | Membangun aplikasi hybrid dengan web sebagai konten utama atau pendukung, menampilkan iklan, kampanye dalam aplikasi, atau halaman persyaratan layanan. | Menampilkan konten dari situs eksternal (seperti artikel berita atau halaman produk). |
| Kontrol UI | Full. Ini adalah komponen View yang dapat Anda tempatkan di mana saja. Anda mengontrol semua UI di sekitarnya. |
Terbatas. Anda dapat memberi tema pada warna toolbar dan menambahkan beberapa tindakan kustom. |
| Data dan sesi | Sandbox. Browser ini tidak membagikan cookie atau info login dengan browser utama pengguna. | Dibagikan. Fitur ini menggunakan sesi browser default pengguna, termasuk cookie dan sandi tersimpan. |
| Jembatan Native <-> Web | Bagus. Anda dapat menggunakan bridge JavaScript untuk komunikasi dua arah yang mendalam antara konten web dan kode aplikasi native. | Terbatas. Anda dapat menggunakan metode window.postMessage() untuk meneruskan string dasar. |
| Upaya developer | Tinggi. Anda harus mengelola siklus proses, navigasi, dan performa sendiri. | Rendah. Anda dapat menerapkannya hanya dengan beberapa baris kode. |
WebView
WebView adalah tampilan yang menjadikan halaman web sebagai bagian integral dari tata letak aplikasi Anda. Meskipun canggih, penanganannya sedikit lebih rumit dibandingkan dengan Tab Kustom.
WebView dapat memuat konten web jarak jauh atau lokal, menjalankan JavaScript, dan mengaktifkan komunikasi dua arah antara konten web dan kode aplikasi native Anda. Untuk mempelajari kemampuannya lebih lanjut, lihat Yang dapat dilakukan WebView.
Anda juga dapat menggunakan WebView untuk mengirimkan aplikasi web atau menampilkan halaman web online sebagai bagian dari aplikasi Anda. Misalnya, perjanjian pengguna akhir yang perlu Anda perbarui secara berkala. Untuk mempelajari lebih lanjut, lihat Membangun aplikasi web di WebView.
Alasan Anda harus memilih WebView
Berikut adalah beberapa skenario yang cocok untuk WebView:
- Aplikasi hybrid: Anda membangun aplikasi yang menampilkan konten web dan komponen native (seperti panel navigasi atau tombol tindakan mengambang) secara berdampingan.
- Konten pihak pertama: Konten web Anda adalah bagian inti dan interaktif dari pengalaman aplikasi, seperti editor dokumen atau kanvas desain.
- Kontrol UI penuh: Anda perlu mengubah konten halaman web itu sendiri atau menempatkan elemen UI native di atasnya.
- Analisis mendalam: Anda memerlukan insight mendetail tentang interaksi dan aktivitas pengguna dalam tampilan web.
Kompromi utama
Berikut adalah beberapa pertimbangan penting yang perlu dipertimbangkan saat menggunakan WebView:
- Performa: WebView dapat menggunakan banyak memori. Jika Anda tidak mengelolanya dengan cermat, Anda dapat mengalami masalah performa atau ANR (error Aplikasi Tidak Merespons).
- Keamanan dan pemeliharaan: Anda bertanggung jawab untuk memperkuat keamanan dan mengelola siklus proses. Namun, update WebView diluncurkan secara global melalui Google Play, sehingga Anda tidak perlu khawatir mesin yang mendasarinya menjadi tidak update.
Tab Kustom
Tab Kustom adalah pilihan yang tepat untuk mengarahkan pengguna ke URL eksternal, karena menyediakan jendela browser yang cepat, aman, dan mudah digunakan yang meluncur di atas aplikasi Anda.
Alasan Anda harus memilih Tab Kustom
Berikut beberapa skenario yang cocok untuk Tab Kustom:
- Link Eksternal: Saat pengguna mengetuk link ke situs yang bukan milik Anda, Tab Kustom akan mempertahankan mereka dalam konteks aplikasi Anda sekaligus memberikan pengalaman browser yang lengkap.
- Kemudahan integrasi: Ini adalah cara paling sederhana untuk menyiapkan dan menjalankan pengalaman web yang disematkan.
- Status bersama: Karena berbagi cookie dengan browser default pengguna, pengguna tidak perlu login lagi ke situs yang telah mereka kunjungi.
- Login pihak ketiga: Metode ini sangat cocok untuk alur login pihak ketiga (seperti "Login dengan Google" atau "Login dengan Facebook") karena browser menangani kredensial dengan aman.
Meskipun sebagian besar browser mendukung Tab Kustom, beberapa browser menawarkan penyesuaian yang lebih banyak daripada browser lainnya. Untuk mengetahui informasi selengkapnya, lihat Dukungan browser.
Menggunakan konten web di Jetpack Compose
Anda dapat menggunakan Tab Kustom dan WebView saat membangun dengan Jetpack Compose:
- Tab Kustom: Karena Tab Kustom menggunakan
Intent, Anda dapat meluncurkannya dariContextmana pun di fungsi Compose, sehingga menghasilkan integrasi yang lancar. - WebView: Compose belum memiliki composable WebView native, jadi Anda
perlu menggunakan
AndroidViewuntuk menyematkan WebView standar ke dalam tata letak Anda.
Referensi lainnya
Untuk mengembangkan halaman web bagi perangkat yang menjalankan Android menggunakan API WebView atau Tab Kustom, lihat dokumen berikut:
- Menyematkan konten web ke dalam aplikasi Anda sebagai konten utama atau pendukung
- Referensi API: WebView
- Ringkasan Tab Kustom
- Ringkasan Aktivitas Web Tepercaya
- Dukungan browser