Dengan peluncuran bertahap dari Chrome 116, kami akan menambahkan opsi Izinkan kali ini ke dialog izin. Sasaran kami adalah mempermudah orang untuk menggunakan kemampuan web yang canggih dengan cara mereka sendiri. Opsi Izinkan kali ini awalnya akan tersedia di desktop untuk beberapa izin yang paling umum: geolokasi, kamera, dan mikrofon. Permintaan izin untuk kemampuan lainnya dan di web seluler tidak berubah untuk saat ini, tetapi dapat berubah pada masa mendatang.
Jika Anda adalah pemilik situs, tinjau Dampak dan Rekomendasi, lalu coba demonya.
UX baru untuk izin
UX Izin sebelum Chrome 116
![Dialog izin yang hanya menampilkan blokir dan izinkan.](https://developer.chrome.com/static/blog/one-time-permissions/images/permission-prompt-showing-4cfa5caa7d33f.png?authuser=6&hl=id)
Pengguna diberikan tiga opsi:
- Izinkan: Izin persisten.
- Blokir: Pemblokiran persisten.
- Mengklik tombol x: Pemblokiran sementara. Situs dapat meminta pengguna lagi nanti, paling banyak tiga kali.
Izin dapat dikelola melalui Kontrol situs di kolom URL atau melalui Setelan situs.
UX izin baru dari Chrome 116
![Permintaan izin dengan opsi satu kali yang baru.](https://developer.chrome.com/static/blog/one-time-permissions/images/permission-prompt-the-o-b78a728d235c9.png?authuser=6&hl=id)
Pengguna diberikan empat opsi:
- Izinkan kali ini: Izinkan sementara.
- Izinkan di setiap kunjungan: Terus-menerus diizinkan.
- Jangan izinkan: Pemblokiran persisten.
- Mengklik tombol x: Pemblokiran sementara.
Jika pengguna memilih Izinkan kali ini, izin yang diberikan bersifat sementara, juga disebut sebagai izin satu kali. Durasinya dibatasi untuk interaksi yang sedang berlangsung saat ini dengan aplikasi web.
Manfaat pengguna dan desain UX "Izinkan kali ini"
Opsi Izinkan kali ini akan memberi pengguna:
- Kontrol yang lebih baik. Penelitian pengguna Chrome telah menunjukkan bahwa pengguna sering kali belum siap untuk membuat keputusan yang persisten terkait izin situs, mencoba menilai apakah mereka mendapatkan manfaat dari memberikan izin. Menawarkan opsi Izinkan satu kali dapat mengakomodasi kebutuhan ini dan mengurangi risiko pemberian izin.
- Lebih jelas. Opsi eksplisit Allow this time dan Allow on tiap visit memperjelas bahwa salah satu opsi bersifat sementara, sedangkan opsi lainnya bersifat tetap.
Izin satu kali di browser lain
Di web, izin satu kali didukung di sejumlah browser, termasuk Safari dan Firefox. Untuk melihat cara kerjanya di perangkat Anda, coba https://permission.site/one-time. Pastikan untuk mencoba izin geolokasi, kamera, dan mikrofon, karena keduanya mungkin memiliki perilaku tertentu.
Contoh:
- Pada Safari 16 di desktop, geolokasi dilakukan satu kali secara default (hingga navigasi berikutnya). Pengguna dapat memilih untuk mempertahankan akses selama 24 jam melalui kotak centang.
- Di Firefox 115 di desktop, izin geolokasi, kamera, dan mikrofon hanya tersedia satu kali secara default. Pengguna dapat memilih untuk mendapatkan akses persisten melalui kotak centang.
Dampak dan rekomendasi
Dampak izin satu kali:
- Pengenalan izin satu kali tidak memengaruhi izin yang sebelumnya telah diberikan pengguna secara persisten.
- Setelah pengguna membuat keputusan terkait dialog izin, status izin akan diberikan atau ditolak selama durasi kunjungannya. Izin satu kali tidak ada bedanya bagi hal ini.
- Namun, jika memilih Izinkan kali ini, pengguna akan melihat permintaan izin lagi pada kunjungan berikutnya.
Untuk mengakomodasi izin satu kali, sebaiknya pemilik situs melakukan hal berikut:
- Pastikan implementasi Anda mengikuti praktik terbaik seputar izin. Tinjau Praktik terbaik.
- Memahami kapan masa berlaku izin satu kali berakhir. Lihat detailnya di Akhir masa berlaku izin satu kali.
- Memahami perilaku Permissions API untuk izin satu kali, dan cara mengamati akhir masa berlaku. Tinjau detail di Permissions API.
Praktik terbaik
Izinkan kali ini dapat membuat orang lebih cenderung memberikan izin untuk mencoba kemampuan, tetapi juga dapat mengurangi kesediaan mereka untuk memberikan akses permanen. Oleh karena itu, mengikuti praktik terbaik menjadi makin penting.
- Berikan konteks yang diperlukan sebelum meminta izin. Jelaskan kepada pengguna Anda mengapa mereka akan mendapatkan manfaat dari suatu kemampuan.
- Meminta izin pada waktu yang tepat dan diharapkan. Idealnya, biarkan pengguna Anda mengekspresikan niat mereka untuk menggunakan kemampuan tertentu sesuai kemampuan mereka sendiri.
- Selama durasi kunjungan pengguna, berikan pengalaman yang sama terlepas dari apakah pengguna memilih opsi satu kali atau tetap.
Tinjau panduan tambahan di UX Izin.
Akhir masa berlaku izin satu kali
Secara default, semua izin web terikat dengan origin, yang dapat dianggap sebagai aplikasi itu sendiri. Dengan opsi Izinkan kali ini, pengguna memberikan izin satu kali ke origin. Pada intinya, izin satu kali akan habis masa berlakunya ketika pengguna berhenti berinteraksi secara aktif dengan origin tersebut untuk beberapa waktu. Artinya, situs dapat terus menggunakan kemampuan tersebut jika pengguna beralih sebentar ke halaman web lain di tab lain, tetapi kemudian kembali.
Secara lebih mendetail, pemberian izin satu kali akan berakhir segera setelah salah satu kondisi berikut terpenuhi:
- Halaman telah ditutup, dinavigasi dari, atau dihapus. Tindakan ini termasuk menutup Chrome.
- 16 jam telah berlalu sejak memberikan izin.
- Pengguna mencabut izin secara manual (misalnya, di Kontrol situs), atau izin diganti melalui kebijakan perusahaan.
- Halaman telah berada di latar belakang setidaknya selama 5 menit—kecuali jika kemampuan tersebut diizinkan untuk berjalan di latar belakang, seperti kamera atau mikrofon. Dalam hal ini, selama situs menggunakan kemampuan tersebut, Chrome akan menampilkan indikator tab setrip dan tidak memulai timer 5 menit hingga halaman berhenti menggunakan kemampuan tersebut. Perhatikan bahwa timer 16 jam masih berjalan.
Tab background
Tab browser berada di latar belakang saat tidak berada di latar depan. Tab berada di latar depan saat tab yang terlihat di jendela browser tidak diperkecil.
Di Chrome, beberapa kemampuan, seperti geolokasi, hanya dapat berjalan di tab latar depan. Pengujian tersebut tidak diizinkan untuk dijalankan di tab latar belakang. Lainnya, seperti kamera dan mikrofon, diizinkan berjalan di tab latar belakang.
Indikator tab setrip
Kemampuan yang terus berjalan saat tab berada di latar belakang memiliki indikator tab setrip. Misalnya, kamera memiliki indikator tab setrip.
![Tab dengan titik merah.](https://developer.chrome.com/static/blog/one-time-permissions/images/a-tab-a-red-dot-ffdcc0b012d03.jpg?authuser=6&hl=id)
Geolokasi tidak memerlukan indikator tab setrip, karena akses geolokasi dijeda begitu halaman berada di latar belakang.
Contoh
- Geolokasi: Pengguna berada di
example.com
dan memberikan akses geolokasi satu kali. Pengguna beralih ke tab lain. Ini menjadikanexample.com
sebagai tab latar belakang. Akses geolokasi akan langsung dijeda karena Chrome tidak mengizinkan akses geolokasi latar belakang, tetapi pemberian izin satu kali tetap valid. Jika pengguna kembali keexample.com
dalam waktu lima menit, halaman dapat melanjutkan akses geolokasi (dan timer masa berlaku 5 menit akan direset). Jika tidak, izin satu kali akan berakhir. - Kamera/Mikrofon: Pengguna menggunakan
example.com
dan memberikan akses kamera satu kali. Pengguna beralih ke tab lain. Ini menjadikanexample.com
sebagai tab latar belakang. Akses kamera dapat dilanjutkan karena Chrome mengizinkan akses kamera berlanjut di latar belakang. Chrome terus menampilkan indikator tab setrip untuk kamera selama indikator tersebut digunakan agar pengguna terus mendapatkan informasi. Pada titik tertentu, situs dapat memutuskan untuk menghentikan akses kamera, dalam hal ini timer masa berlaku 5 menit dimulai. Setelah 5 menit tanpa akses kamera, izin satu kali akan berakhir.
Permissions API
Untuk membuat kueri status izin API, Anda dapat menggunakan Permissions API:
- Jika pengguna memilih Izinkan kali ini, status Permission API akan disetel ke
granted
. Artinya, izin satu kali yang belum habis masa berlakunya dan izin persisten tidak dapat dibedakan dan memiliki status yang sama:granted
. - Setelah izin satu kali berakhir, statusnya akan disetel kembali ke
prompt
. - Untuk mengamati masa berlaku izin satu kali, daftarkan pengendali peristiwa
PermissionStatus.onchange
.
Demo
- Buka Chrome 116 atau yang lebih baru, di komputer desktop.
- Buka
chrome://flags/#one-time-permission
, lalu pilih Aktifkan. Mulai ulang Chrome. Langkah ini akan mengaktifkan otomatis izin satu kali jika belum diluncurkan di browser Chrome Anda. - Buka https://permission.site/one-time.
- Klik tombol Geolokasi.
- Amati dialog izin satu kali yang baru.
- Pilih Izinkan kali ini.
- Buka Kontrol situs. Perhatikan bahwa Anda dapat mengelola izin satu kali.
- Tutup tab https://permission.site/one-time. Pastikan tidak ada tab lain untuk origin tersebut yang terbuka.
- Buka https://permission.site/one-time di tab baru.
- Buka Kontrol situs. Buka Setelan situs.
- Perhatikan bahwa izin Geolokasi sekarang kembali ke status awal: Minta (default).
Kesimpulan dan masukan
Izin satu kali menawarkan lebih banyak pilihan kepada pengguna, dan UI izin baru Chrome menghadirkan pengalaman pengguna izin yang lebih konsisten di seluruh browser dan platform.
Jika Anda mengalami masalah dengan izin satu kali, ajukan masalah crbug baru untuk dialog izin.
Ucapan terima kasih
Terima kasih kepada Rachel Andrew, Serena Chen, Balazs Engedy, Marian Harbach, Florian Jacky, dan Thomas Steiner telah meninjau artikel ini.