WebAPK di Android

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

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

Untuk membuat WebAPK, Chrome akan melihat manifest aplikasi web dan metadata lainnya. Jika update pada manifes terdeteksi, Chrome harus 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 dibuka, bukan dibuka di tab browser.

Pertimbangkan manifest.json parsial berikut:

"start_url": "/",
"display": "standalone",

Saat aplikasi web yang menggunakannya diluncurkan dari peluncur aplikasi, aplikasi tersebut akan terbuka https://example.com/ sebagai aplikasi mandiri, tanpa chrome browser.

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 yang terinstal untuk https://example.com/read, link tersebut akan ditangkap oleh intent dan dibuka di Progressive Web App.

Menggunakan scope untuk membatasi filter intent

Jika tidak ingin Aplikasi Web Progresif menangani semua URL dalam situs Anda, Anda dapat menambahkan properti scope ke manifes aplikasi web Anda. Properti scope memberi tahu Android untuk hanya membuka aplikasi web Anda jika URL cocok dengan origin + scope. Hal ini memberi Anda kontrol atas 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 parsial berikut:

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

Saat diluncurkan dari peluncur aplikasi, aplikasi ini akan membuka https://example.com/app/ sebagai aplikasi mandiri, tanpa chrome browser.

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 contoh:

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 mengetahui 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 saat penginstalan. Sebagai gantinya, izin harus diminta saat runtime, 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 terinstal. Cookie dibagikan dan aktif, penyimpanan sisi klien dapat diakses, dan service worker diinstal serta siap digunakan.

Memperbarui WebAPK

Informasi tentang cara mengupdate WebAPK telah dipindahkan ke Cara Chrome menangani update pada manifes aplikasi web.

Pertanyaan umum (FAQ)

Ikon apa yang digunakan untuk membuat layar pembuka?

Sebaiknya Anda memberikan setidaknya dua ukuran ikon untuk layar pembuka: 192 piksel dan 512 piksel. Kami mendengar 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, asalkan ikon yang direkomendasikan diberikan.

Apa yang terjadi jika pengguna telah menginstal aplikasi native untuk situs?

Seperti fitur tambahkan ke layar utama saat ini, pengguna akan dapat menambahkan situs secara terpisah dari aplikasi native mana pun. Jika Anda memperkirakan pengguna akan menginstal keduanya, sebaiknya bedakan ikon atau nama situs Anda dari 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 mendapatkan perangkat baru?

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.

Di 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 akan terbuka di versi Chrome yang digunakan pengguna saat menambahkan situs tersebut.

Dapatkah kita mengupload APK yang dibuat ke Google Play Store?

Tidak. Jika Anda ingin mengupload APK Anda sendiri, lihatTrusted Web Activities.

Apakah aplikasi ini tercantum di Google 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, bisakah saya memiliki proses penginstalan yang lancar ini?

Kami sedang mengusahakannya. Kami berkomitmen untuk menyediakannya di semua browser di Android dan kami akan segera memberikan detail selengkapnya.