Browser dalam aplikasi memberi pengguna pengalaman web lengkap tanpa mengharuskan mereka keluar dari aplikasi Anda. Android menawarkan dua API utama untuk mengimplementasikan browser dalam aplikasi: Tab Khusus 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 Khusus dan WebView adalah keputusan arsitektur besar yang memengaruhi kecepatan pengembangan, pengalaman pengguna, dan seberapa besar kontrol yang Anda miliki atas UI.
Perbandingan singkat
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 | Penuh. Ini adalah komponen View yang dapat Anda tempatkan di mana saja. Anda mengontrol semua UI di sekitarnya. |
Terbatas. Anda dapat menerapkan tema pada warna toolbar dan menambahkan beberapa tindakan kustom. |
| Data dan sesi | Dijalankan dalam sandbox. Tab ini tidak membagikan cookie atau login ke browser utama pengguna. | Dibagikan. Fitur ini menggunakan sesi browser default pengguna, termasuk cookie dan sandi tersimpan. |
| Jembatan Native <-> Web | Bagus. Anda dapat menggunakan jembatan JavaScript untuk komunikasi dua arah yang mendalam antara konten web dan kode aplikasi native. | Terbatas. Anda dapat menggunakan metode window.postMessage() untuk penerusan 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. WebView memang canggih, tetapi sedikit lebih rumit untuk ditangani 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 Membuat aplikasi web di WebView.
Alasan memilih WebView
Berikut adalah beberapa skenario yang cocok untuk WebView:
- Aplikasi hybrid: Anda membangun aplikasi tempat konten web dan komponen native (seperti menu navigasi atau tombol tindakan mengambang) berada 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 engagement pengguna dan aktivitas dalam tampilan web.
Kompromi utama
Berikut adalah beberapa konsekuensi utama yang perlu dipertimbangkan saat menggunakan WebView:
- Performa: WebView dapat menggunakan banyak memori. Jika Anda tidak mengelolanya dengan hati-hati, Anda dapat mengalami masalah performa atau ANR (error Aplikasi Tidak Merespons).
- Keamanan dan pemeliharaan: Anda bertanggung jawab untuk memperkuat keamanan
dan mengelola siklus proses. Hal ini mencakup pengelolaan pemeliharaan status
di seluruh pembuatan ulang proses menggunakan
WebViewCompat.saveState()dan tetap berada dalam batas transaksi status tersimpan Android sebesar 1 MB. Namun, update WebView dirilis secara global melalui Google Play, sehingga Anda tidak perlu khawatir mesin yang mendasarinya menjadi usang.
Tab Kustom
Tab Kustom adalah pilihan tepat untuk mengarahkan pengguna ke URL eksternal, karena menyediakan jendela browser yang cepat, aman, dan mudah digunakan yang muncul di atas aplikasi Anda.
Alasan Anda harus memilih Tab Khusus
Berikut adalah beberapa skenario yang cocok untuk Tab Khusus:
- Link Eksternal: Saat pengguna mengetuk link ke situs yang bukan milik Anda, Tab Khusus mempertahankan pengguna dalam konteks aplikasi Anda sekaligus memberikan pengalaman browser lengkap.
- Kemudahan integrasi: Ini adalah cara termudah untuk menyiapkan dan menjalankan pengalaman web tersemat.
- Status bersama: Karena berbagi cookie dengan browser default pengguna, pengguna tidak perlu login lagi ke situs yang telah mereka kunjungi.
- Login pihak ketiga: 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 Khusus, beberapa browser menawarkan lebih banyak penyesuaian daripada yang lain. Untuk mengetahui informasi selengkapnya, lihat Dukungan browser.
Menggunakan konten web di Jetpack Compose
Anda dapat menggunakan Tab Khusus dan WebView saat mem-build dengan Jetpack Compose:
- Tab Khusus: Karena Tab Khusus menggunakan
Intent, Anda dapat meluncurkannya dariContextmana pun dalam fungsi Compose, sehingga menghasilkan integrasi yang lancar. - WebView: Compose belum memiliki composable WebView native, jadi Anda harus
menggunakan
AndroidViewuntuk menyematkan WebView standar ke dalam tata letak.
Referensi lainnya
Untuk mengembangkan halaman web bagi perangkat Android menggunakan API WebView atau Tab Khusus, lihat dokumen berikut:
- Menyematkan konten web ke dalam aplikasi sebagai konten utama atau pendukung
- Referensi API: WebView
- Ringkasan Tab Kustom
- Ringkasan Aktivitas Web Tepercaya
- Mengelola status WebView secara efisien
- Dukungan browser