Saat pengguna menambahkan Progressive Web App ke layar utama mereka di Android, Chrome otomatis membuat APK untuk Anda, yang terkadang kami sebut sebagai WebAPK. Diinstal melalui APK memungkinkan aplikasi Anda muncul di peluncur aplikasi, dalam setelan aplikasi Android, dan mendaftarkan serangkaian filter intent.
Menginstal PWA di Android tidak hanya menambahkan Progressive Web App ke Layar Utama pengguna. Chrome akan otomatis membuat dan menginstal APK khusus untuk aplikasi Anda. Terkadang kami menyebutnya sebagai WebAPK. Jika diinstal melalui APK, aplikasi dapat muncul di peluncur aplikasi, dalam setelan aplikasi Android, dan mendaftarkan serangkaian filter intent.
Untuk membuat WebAPK, Chrome melihat manifes aplikasi web dan metadata lainnya. Saat update pada manifes terdeteksi, Chrome perlu membuat APK baru.
Filter intent Android
Saat diinstal di Android, Progressive Web App akan mendaftarkan serangkaian filter intent untuk semua URL dalam cakupan aplikasi. Saat pengguna mengklik link yang berada dalam cakupan aplikasi, aplikasi akan terbuka, bukan terbuka dalam tab browser.
Pertimbangkan manifest.json
sebagian berikut:
"start_url": "/",
"display": "standalone",
Saat aplikasi web yang menggunakannya diluncurkan dari peluncur aplikasi, aplikasi akan membuka
https://example.com/
sebagai aplikasi mandiri, tanpa browser Chrome apa pun.
WebAPK akan menyertakan filter intent berikut:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/" />
</intent-filter>
Jika pengguna mengklik link dalam aplikasi terinstal ke
https://example.com/read
, link akan ditangkap oleh intent dan dibuka
di Progressive Web App.
Menggunakan scope
untuk membatasi filter intent
Jika tidak ingin Progressive Web App menangani semua URL dalam situs, Anda dapat menambahkan properti scope
ke manifes aplikasi web. Properti scope
memberi tahu Android untuk hanya membuka aplikasi web Anda
jika URL-nya cocok dengan origin
+ scope
. Dengan begitu, Anda dapat mengontrol URL mana yang akan ditangani oleh aplikasi Anda, dan URL mana yang harus dibuka di browser.
Hal ini berguna jika Anda memiliki aplikasi dan konten non-aplikasi lainnya di domain
yang sama.
Pertimbangkan manifest.json
sebagian berikut:
"scope": "/app/",
"start_url": "/app/",
"display": "standalone",
Saat diluncurkan dari peluncur aplikasi, peluncur aplikasi akan membuka https://example.com/app/
sebagai aplikasi mandiri, tanpa browser Chrome apa pun.
Seperti sebelumnya, WebAPK yang dihasilkan akan menyertakan filter intent, tetapi dengan
atribut android:pathPrefix
yang berbeda dalam AndroidManifest.xml
APK:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/app/" />
</intent-filter>
Mari kita lihat beberapa contohnya:
https://example.com/app/
- dalam /app/
https://example.com/app/read/book
- dalam /app/
https://example.com/help/
- tidak dalam /app/
https://example.com/about/
- tidak dalam /app/
Lihat scope
untuk mengetahui informasi selengkapnya tentang
scope
, hal yang terjadi jika Anda tidak menetapkannya, dan cara menggunakannya untuk menentukan
cakupan aplikasi.
Mengelola Izin
Izin berfungsi dengan cara yang sama seperti aplikasi web lain dan tidak dapat diminta pada saat penginstalan. Fungsi ini harus diminta pada runtime, idealnya hanya saat Anda benar-benar membutuhkannya. Misalnya, jangan minta izin kamera saat pemuatan pertama, tetapi tunggu hingga pengguna mencoba mengambil gambar.
Mengelola penyimpanan dan status aplikasi
Meskipun progressive web app diinstal melalui APK, Chrome menggunakan profil saat ini untuk menyimpan data apa pun, dan tidak akan dipisahkan. Hal ini memungkinkan pengalaman bersama antara browser dan aplikasi terinstal. Cookie dibagikan dan aktif, semua penyimpanan sisi klien dapat diakses, dan pekerja layanan diinstal dan siap digunakan.
Mengupdate WebAPK
Informasi tentang cara WebAPK diupdate telah dipindahkan ke Cara Chrome menangani update pada manifes aplikasi web.
Pertanyaan umum (FAQ)
- Ikon apa yang digunakan untuk menghasilkan layar pembuka? :
- Sebaiknya sediakan minimal dua ikon: 192 piksel dan 512 piksel untuk layar pembuka. Kami mendengar dari Anda bahwa ikon pada layar pembuka terlalu kecil. WebAPK yang dibuat di Chrome 71 atau yang lebih baru akan menampilkan ikon yang lebih besar di layar pembuka. Anda tidak perlu melakukan tindakan apa pun selama ikon yang direkomendasikan tersedia.
- Apa yang terjadi jika pengguna sudah menginstal aplikasi native untuk situs tersebut?
- Seperti menambahkan ke layar utama saat ini, pengguna akan dapat menambahkan situs yang terpisah dari aplikasi native apa pun. Jika Anda memperkirakan pengguna berpotensi menginstal keduanya, sebaiknya bedakan ikon atau nama situs Anda dengan aplikasi native.
- Apakah penyimpanan situs yang saya instal akan dihapus jika pengguna menghapus cache Chrome?
- Ya.
- Apakah aplikasi saya akan diinstal ulang saat saya memiliki perangkat baru?
- Tidak untuk saat ini, tetapi kami menganggapnya penting dan kami sedang menyelidiki cara untuk mengoptimalkannya.
- Bagaimana izin ditangani? Apakah saya akan melihat perintah Chrome atau Android?
- Izin akan tetap dikelola melalui Chrome. Pengguna akan melihat permintaan Chrome untuk memberikan izin dan akan dapat mengeditnya di setelan Chrome.
- Untuk versi Android mana fitur ini akan berfungsi?
- Progressive web app dapat diinstal di semua versi Android yang menjalankan Chrome untuk Android, khususnya Jelly Bean dan yang lebih baru.
- Apakah ini menggunakan WebView?
- Tidak, situs dapat dibuka di versi Chrome tempat pengguna menambahkan situs.
- Bisakah kita mengupload APK yang dibuat ke Play Store?
- Tidak. Jika Anda ingin mengupload APK sendiri, lihat Aktivitas Web Tepercaya.
- Apakah aplikasi ini tercantum di Play Store?
- Tidak. Jika Anda ingin mengupload APK sendiri untuk dicantumkan di Play Store, lihat Aktivitas Web Tepercaya.
- Saya adalah developer browser lain di Android, dapatkah saya mendapatkan proses penginstalan yang lancar ini? :
- Kami sedang mengerjakannya. Kami berkomitmen untuk menyediakannya bagi semua browser di Android dan kami akan segera mendapatkan detail lebih lanjut.