WebAPK di Android

Saat pengguna menambahkan Progressive Web App Anda ke layar utama di Android, Chrome akan otomatis membuat APK untuk Anda, yang terkadang kami sebut WebAPK. Diinstal melalui APK, aplikasi Anda dapat muncul di peluncur aplikasi, dalam setelan aplikasi Android, dan mendaftarkan serangkaian filter intent.

Pete LePage
Pete LePage

Menginstal PWA di Android tidak hanya menambahkan Progressive Web App ke Layar Utama pengguna. Chrome otomatis membuat dan menginstal APK khusus aplikasi Anda. Terkadang kami menyebutnya sebagai WebAPK. Diinstal melalui APK, aplikasi Anda dapat muncul di peluncur aplikasi, di setelan aplikasi Android, dan mendaftarkan serangkaian filter intent.

Untuk membuat WebAPK, Chrome melihat manifes aplikasi web dan metadata lainnya. Jika update pada manifes terdeteksi, Chrome perlu membuat APK baru.

Filter intent Android

Saat diinstal di Android, Progressive Web App akan mendaftarkan kumpulan filter intent untuk semua URL dalam cakupan aplikasi. Saat pengguna mengklik link yang berada dalam cakupan aplikasi, aplikasi akan terbuka, bukan membuka 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.

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 tersebut akan ditangkap oleh intent dan dibuka di Progressive Web App.

Menggunakan scope untuk membatasi filter intent

Jika Anda 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 cocok dengan origin + scope. Hal ini memberi Anda kontrol atas URL yang akan ditangani oleh aplikasi, dan URL yang harus dibuka di browser. Hal ini berguna jika Anda memiliki aplikasi dan konten non-aplikasi lainnya di domain yang sama.

Pertimbangkan manifest.json parsial berikut:

"scope": "/app/",
"start_url": "/app/",
"display": "standalone",

Saat diluncurkan dari peluncur aplikasi, peluncur akan membuka https://example.com/app/ sebagai aplikasi mandiri, tanpa Chrome browser apa pun.

Seperti sebelumnya, WebAPK yang dihasilkan akan menyertakan filter intent, tetapi dengan atribut android:pathPrefix yang berbeda di 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:

Anjuran

https://example.com/app/ - dalam /app/

Anjuran

https://example.com/app/read/book - dalam /app/

Larangan

https://example.com/help/ - tidak ada di /app/

Larangan

https://example.com/about/ - tidak ada di /app/

Lihat scope untuk informasi selengkapnya tentang scope, apa yang terjadi jika Anda tidak menyetelnya, dan cara menggunakannya untuk menentukan cakupan aplikasi Anda.

Mengelola Izin

Izin berfungsi dengan cara yang sama seperti aplikasi web lainnya dan tidak dapat diminta pada waktu penginstalan. Sebagai gantinya, izin harus diminta pada waktu proses, idealnya hanya saat Anda benar-benar membutuhkannya. Misalnya, jangan meminta izin kamera saat pertama kali dimuat, tetapi tunggu hingga pengguna mencoba mengambil gambar.

Mengelola penyimpanan dan status aplikasi

Meskipun aplikasi web progresif diinstal melalui APK, Chrome menggunakan profil saat ini untuk menyimpan data apa pun, dan data tersebut tidak akan dipisahkan. Hal ini memungkinkan pengalaman bersama antara browser dan aplikasi yang diinstal. Cookie dibagikan dan aktif, penyimpanan sisi klien dapat diakses, dan pekerja layanan diinstal dan siap digunakan.

Mengupdate WebAPK

Informasi tentang cara WebAPK diperbarui telah dipindahkan ke Cara Chrome menangani pembaruan untuk manifes aplikasi web.

Pertanyaan umum (FAQ)

Ikon apa yang digunakan untuk membuat layar pembuka? :
Sebaiknya sediakan minimal dua ikon: 192 piksel dan 512 piksel untuk layar pembuka. Kami telah menerima masukan dari Anda bahwa ikon di 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 telah menginstal aplikasi native untuk situs?
Seperti menambahkan ke layar utama saat ini, pengguna akan dapat menambahkan situs yang tidak bergantung pada aplikasi native apa pun. Jika Anda memperkirakan pengguna berpotensi menginstal keduanya, sebaiknya bedakan ikon atau nama situs dengan aplikasi native Anda.
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?
Untuk saat ini belum, tetapi kami menganggapnya sebagai area penting dan kami sedang menyelidiki cara untuk mewujudkannya.
Bagaimana izin ditangani? Apakah saya akan melihat perintah Chrome atau Android?
Izin akan tetap dikelola melalui Chrome. Pengguna akan melihat perintah Chrome untuk memberikan izin dan dapat mengeditnya di setelan Chrome.
Apa versi Android yang akan berfungsi?
Progressive web apps dapat diinstal di semua versi Android yang menjalankan Chrome untuk Android, khususnya Jelly Bean dan yang lebih baru.
Apakah ini menggunakan WebView?
Tidak, situs akan terbuka di versi Chrome tempat pengguna menambahkan situs.
Dapatkah kami mengupload APK yang dibuat ke Play Store?
Tidak. Jika Anda ingin mengupload APK Anda sendiri, lihatAktivitas Web Tepercaya.
Apakah aplikasi tersebut tercantum di Play Store?
Tidak. Jika Anda ingin mengupload APK Anda sendiri untuk dicantumkan di Play Store, lihat Aktivitas Web Tepercaya.
Saya adalah developer browser lain di Android, apakah saya bisa mendapatkan proses penginstalan yang lancar ini? :
Kami sedang mengatasinya. Kami berkomitmen untuk menyediakannya bagi semua browser di Android dan akan segera memberikan detail selengkapnya.