Pengaturan Perbarui
Salin prompt pengaturan dengan langkah-langkah instalasi dan panduan markdown lengkap untuk plugin ini.
When you release an update to your Capgo app, you probably want your users to receive that update as soon as possible. But you also don’t want to disrupt their experience by forcing them to wait for a download or restart the app in the middle of a session.
Polanya pembaruan Capgo dirancang untuk mencapai keseimbangan antara menyampaikan pembaruan dengan cepat dan mengurangi gangguan pada pengguna.
Alur Pembaruan Bawaan
Bab berjudul “Alur Pembaruan Bawaan”Dengan bawaan, inilah cara Capgo mengelola pembaruan aplikasi:
-
Mengapa aplikasi berpindah ke latar depan, plugin Capgo memeriksa apakah ada pembaruan baru yang tersedia. Sementara aplikasi tetap terbuka, ia juga memeriksa lagi pada timer yang berulang-ulang yang dikendalikan oleh
periodCheckDelay(10 menit default). -
Jika pembaruan ditemukan, ia diunduh di latar belakang sementara pengguna terus menggunakan versi aplikasi saat ini.
-
Setelah download selesai, Capgo menunggu pengguna untuk mengalihkan aplikasi ke latar belakang.
-
Mengapa ini terjadi ketika pengguna membawa aplikasi ke depan?
Aliran ini memastikan pengguna selalu menjalankan versi aplikasi terbaru, tanpa pernah terganggu oleh notifikasi pembaruan atau dipaksa menunggu download.
Mengapa Pendekatan Ini?
Bab berjudul “Mengapa Pendekatan Ini?”Penggunaan pembaruan di acara latar belakang atau kill memiliki beberapa keuntungan utama untuk pengalaman pengguna:
-
Pengguna tidak terganggu oleh notifikasi pembaruan atau dipaksa menunggu download di tengah sesi.
-
Pembaruan diterapkan secara halus di antara sesi, sehingga pengalaman membuka aplikasi selalu segar.
-
Kamu dapat mengirimkan pembaruan secara sering tanpa khawatir mengganggu pengguna aktif.
Kelemahan utama adalah jika pengguna memasuki latar belakang dan segera mengaktifkan aplikasi, mereka mungkin kehilangan status yang belum disimpan sejak pembaruan diterapkan di antara aksi-aksi tersebut.
Untuk mengurangi dampak ini, kami merekomendasikan:
-
Menghemat status secara sering dan memulihkannya dengan baik ketika aplikasi kembali.
-
Menghindari pembaruan yang sangat sering yang mengubah bagian besar dari status aplikasi.
-
Menganggapkan pengaturan perilaku pembaruan untuk aliran sensitif (lihat di bawah).
Pengaturan Pembaruan
Bab yang berjudul “Pengaturan Pembaruan”Dalam beberapa kasus, Anda mungkin ingin memiliki kontrol yang lebih spesifik atas saat pembaruan diterapkan. Misalnya, Anda mungkin ingin memastikan pengguna menyelesaikan aliran yang sedang berlangsung sebelum melakukan pembaruan, atau mengkoordinasikan pembaruan aplikasi dengan perubahan sisi server.
Capgo menyediakan sebuah setDelay fungsi yang memungkinkan Anda menentukan syarat-syarat yang harus dipenuhi sebelum pembaruan diinstal:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setMultiDelay({ delayConditions: [ { kind: 'date', value: '2023-06-01T00:00:00.000Z', }, { kind: 'background', value: '60000', }, ],});Contoh ini akan menunda instalasi update hingga setelah 1 Juni 2023 DAN aplikasi telah dibackground selama minimal 60 detik.
Kondisi penundaan yang tersedia adalah:
date: Tunggu hingga setelah tanggal/waktu tertentu untuk menerapkan update.background: Tunggu durasi minimal setelah aplikasi dibackground untuk menerapkan update.nativeVersion: Tunggu instalasi biner asli dengan versi minimum sebelum menerapkan update.kill: Tunggu hingga event pembunuhan aplikasi berikutnya untuk menerapkan update.
Aplikasi dapat mencampur dan mencocokkan kondisi-kondisi ini untuk mengontrol secara tepat kapan update diinstal.
Menerapkan Update Langsung
Judul Bagian: “Mengaplikasikan Perbaruan Langsung”Mengapa Anda mungkin ingin mengaplikasikan perbaruan segera setelah download selesai, tanpa menunggu event latar belakang atau event pembunuhan? Capgo mendukung ini melalui autoUpdate kebijakan di konfigurasi Capacitor Anda.
autoUpdate ditetapkan di file Anda, bukan di JavaScript __CAPGO_KEEP_0__. Ini mendukung nilai-nilai ini: capacitor.config.ts file, not in JavaScript code. It supports these values:
falseatau'off'Disable pembaruan otomatistrueatau'atBackground'(default): Periksa dan download secara otomatis pada setiap periksa latar depan, kemudian aplikasikan pembaruan berikutnya ketika aplikasi berpindah ke latar belakang'atInstall': Aplikasikan segera hanya setelah instalasi segar atau pembaruan toko aplikasi asli; lainnya gunakan"atBackground"behavior'onLaunch': Aplikasikan segera hanya ketika aplikasi dibawa ke depan dari keadaan mati (cold start). Setelah cek pertama, kembali ke"atBackground"behavior'always': Periksa pada setiap transisi ke depan dan aplikasikan segera ketika pembaruan tersedia'onlyDownload': Periksa dan download secara otomatis, emitupdateAvailable, dan tidak pernah atur bundle berikutnya atau aplikasikan pembaruan secara otomatis
Test a Native Build Without Live Updates
Bagian berjudul “Test a Native Build Without Live Updates”See Test Native Builds Without Live Updates untuk keamanan konfigurasi native-version, channel-policy, dan CI.
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' for updates only on app install/update autoSplashscreen: true, keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, // Required when using instant apply with autoSplashscreen }, },};
export default config;Dengan autoUpdate: 'always', Capgo memeriksa setiap transisi ke latar depan dan langsung menerapkan update segera setelah download selesai selama periksa tersebut, bahkan jika pengguna sedang menggunakan aplikasi. Periksa periodik yang dikendalikan oleh periodCheckDelay mengaktifkan perilaku menerapkan langsung yang sama sementara aplikasi tetap terbuka.
Perlu diingat bahwa karena autoUpdate adalah pengaturan native, mode aplikasi instan memerlukan penanganan tambahan dalam JavaScript code.
Pembaruan Otomatis Tanpa Mengaplikasikan
Judul bagian “Pembaruan Otomatis Tanpa Mengaplikasikan”Jika Anda ingin Capgo memeriksa dan mengunduh pembaruan secara otomatis tetapi tidak pernah mengaplikasikannya secara otomatis, gunakan autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};Dalam mode ini, plugin mengeluarkan updateAvailable setelah bundle diunduh. Aplikasi Anda dapat kemudian memutuskan kapan untuk memanggil CapacitorUpdater.set() atau menampilkan prompt pembaruan sendiri.
Pengelolaan Layar Splash Otomatis
Pengaturan Judul “Pengaturan Layar Splash Otomatis””Untuk memudahkan penggunaan mode aplikasi instan, Capgo menyediakan autoSplashscreen option yang secara otomatis menghandle menyembunyikan layar splash untuk Anda (tersedia sejak versi 7.6.0):
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' autoSplashscreen: true, // Automatically hide splashscreen keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, }, },};Ketika autoSplashscreen diaktifkan:
- Layanan plugin secara otomatis menyembunyikan layar splash ketika update diterapkan
- Layanan plugin secara otomatis menyembunyikan layar splash ketika tidak ada update yang diperlukan
- Anda tidak perlu mendengarkan
appReadyacara atau memanggilSplashScreen.hide()
Pengaturan Layar Splash Manual
Pengaturan Judul “Pengaturan Layar Splash Manual””Jika Anda lebih suka mengontrol secara manual atau memerlukan logika kustom, Anda dapat menonaktifkan autoSplashscreen dan mengelola sendiri:
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Hide splash screen SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();Event ini terjadi setelah aplikasi telah selesai menginisialisasi dan menerapkan pembaruan yang menunggu. Ini adalah titik di mana aman menampilkan antarmuka aplikasi, karena memastikan pengguna akan melihat versi terbaru. appReady Selain mengelola event ini, kami merekomendasikan mengatur opsi konfigurasi ke
ketika menggunakan mode aplikasi instan. Ini mempertahankan jalur URL saat ini ketika aplikasi di-reload karena pembaruan, membantu menjaga lokasi pengguna di aplikasi dan mengurangi kebingungan. appReady Jika Anda tidak mengelola event ini dan mengatur keepUrlPathAfterReload ketika menggunakan mode aplikasi instan, pengguna mungkin melihat versi aplikasi yang ketinggalan zaman secara singkat, diambil kembali ke rute awal, atau melihat kilauan saat pembaruan diterapkan. true __CAPGO_KEEP_0__
__CAPGO_KEEP_0__ appReady __CAPGO_KEEP_0__ keepUrlPathAfterReload __CAPGO_KEEP_0__
Memanfaatkan mode aplikasi instan dapat berguna untuk menyampaikan perbaikan bug kritis atau patch keamanan, tetapi hal ini datang dengan beberapa kekurangan:
- User mungkin melihat kilasan singkat atau status muat sementara saat pembaruan diterapkan jika Anda tidak menghandle layar splashscreen dengan benar (baik dengan menggunakan
autoSplashscreenatau pengaturan manualappReadyevent handling). - Jika pembaruan memodifikasi keadaan aplikasi atau UI, user mungkin melihat perubahan yang mengganggu di tengah sesi.
- Posisi user di aplikasi mungkin hilang jika
keepUrlPathAfterReloadtidak diset, sehingga dapat membuat mereka bingung. - Anda perlu menghandle penyimpanan dan pemulihan keadaan dengan hati-hati untuk memastikan transisi yang lancar.
Jika Anda memungkinkan aplikasi instan, kami merekomendasikan:
- Menggunakan
autoSplashscreen: trueuntuk setup yang paling sederhana, atau menghandleappReadyevent secara manual jika Anda membutuhkan logika kustom. - Konfigurasi
keepUrlPathAfterReloaduntuktruecontext: Halaman/area: Halaman produk live update. Peran: Label UI singkat atau item navigasi. Kunci pesan `live_update_dynamic_label_to` (Label Dinamis Live Update To). - untuk menjaga lokasi pengguna di aplikasi.
- Menyimpan dan memulihkan kondisi aplikasi sesuai kebutuhan untuk menghindari kehilangan kemajuan pengguna.
In most cases, the default update behavior provides the best balance of delivering updates quickly and minimizing disruption. But for apps with specific needs, Capgo provides the flexibility to customize when and how updates are applied.
Pada umumnya, perilaku update default memberikan keseimbangan yang baik dalam mengirimkan update dengan cepat dan mengurangi gangguan. Namun, untuk aplikasi dengan kebutuhan tertentu, __CAPGO_KEEP_0__ memberikan fleksibilitas untuk mengatur kapan dan bagaimana update diterapkan.
Lanjutkan dari Perilaku UpdateJudul bagian ‘Lanjutkan dari Perilaku Update’ Jika Anda menggunakan Perilaku Update untuk merencanakan pengiriman update live, hubungkannya dengan Capgo Live Updates untuk alur kerja produk di Capgo Live Updates, Ringkasan untuk detail implementasi di Ringkasan, Fitur untuk detail implementasi di Fitur, Jenis Update untuk detail implementasi di Jenis Update, dan Mulai untuk detail implementasi di Mulai.