WebAPK di Android

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:

Anjuran

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

Anjuran

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

Larangan

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

Larangan

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.