Lompat ke Konten

Pengaturan Pembaruan

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.

Capgo’s perilakuan pembaruan dirancang untuk mencapai keseimbangan antara menyampaikan pembaruan dengan cepat dan mengurangi gangguan bagi pengguna.

Dengan default, berikut adalah cara Capgo mengelola pembaruan aplikasi:

  1. Pada peluncuran aplikasi, plugin Capgo memeriksa apakah ada pembaruan baru yang tersedia.

  2. Jika pembaruan ditemukan, maka diunduh di latar belakang sambil pengguna terus menggunakan versi aplikasi saat ini.

  3. Saat download selesai, Capgo menunggu pengguna untuk mengbackground aplikasi atau membunuhnya secara keseluruhan.

  4. Ketika pengguna meluncurkan aplikasi lagi, mereka akan menjalankan versi yang diperbarui.

Alur ini memastikan bahwa pengguna selalu menjalankan versi aplikasi terbaru, tanpa pernah diganggu oleh prompt pembaruan atau dipaksa menunggu download.

Mengaplikasikan pembaruan di latar belakang atau event pembunuhan memiliki beberapa keuntungan utama untuk pengalaman pengguna:

  • Pengguna tidak terganggu oleh prompt pembaruan atau dipaksa menunggu download di tengah sesi.

  • Pembaruan diterapkan secara halus di antara sesi, sehingga pengalaman meluncurkan aplikasi selalu segar.

  • Anda dapat mengirimkan pembaruan secara sering tanpa khawatir mengganggu pengguna aktif.

Sisi bawahnya adalah jika pengguna membelakangi dan segera mengaktifkan aplikasi Anda, mereka mungkin kehilangan status yang belum disimpan sejak pembaruan diterapkan di antara aksi-aksi tersebut.

Untuk mengurangi dampak ini, kami merekomendasikan:

  • Menghemat status sering dan memulihkannya dengan baik ketika aplikasi diaktifkan.

  • Menghindari pembaruan yang sangat sering yang mengubah bagian besar dari status aplikasi.

  • Menganggapkan perilaku pembaruan yang disesuaikan untuk aliran sensitif (lihat di bawah).

Pada beberapa kasus, Anda mungkin ingin memiliki kontrol yang lebih besar atas kapan perbaruan diterapkan. Misalnya, Anda mungkin ingin memastikan pengguna menyelesaikan alur yang sedang berlangsung sebelum melakukan perbaruan, atau mengkoordinasikan perbaruan aplikasi dengan perubahan sisi server.

Capgo menyediakan sebuah setDelay fungsi yang memungkinkan Anda menentukan syarat-syarat yang harus dipenuhi sebelum perbaruan 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 menginstal perbaruan hingga setelah 1 Juni 2023 DAN aplikasi telah dibackground selama minimal 60 detik.

Syarat penundaan yang tersedia adalah:

  • date: Tunggu hingga setelah tanggal/waktu tertentu untuk menerapkan perbaruan.
  • background: Tunggu durasi minimum setelah aplikasi dibackground untuk menerapkan perbaruan.
  • nativeVersion: Tunggu instalasi biner native dengan versi minimum sebelum menerapkan perbaruan.
  • kill: Tunggu hingga event pembunuhan aplikasi berikutnya untuk menerapkan perbaruan.

Anda dapat mencampur dan mencocokan syarat-syarat ini untuk mengontrol secara tepat kapan perbaruan diinstal.

Untuk pembaruan kritis atau aplikasi dengan keadaan sederhana, Anda mungkin ingin mengaplikasikan pembaruan segera setelah diunduh, tanpa menunggu event latar belakang atau event pembunuhan. Capgo mendukung hal ini melalui autoUpdate kebijakan di konfigurasi Capacitor Anda.

autoUpdate dalam capacitor.config.ts file, bukan dalam JavaScript code.

  • false atau 'off': Matikan Perbarui Otomatis
  • true atau 'atBackground' (default): Unduh secara otomatis dan terapkan ketika aplikasi berpindah ke latar belakang
  • 'atInstall': Terapkan segera hanya setelah instalasi segar atau pembaruan aplikasi asli, selain itu gunakan aliran latar belakang
  • 'onLaunch': Terapkan segera pada saat aplikasi dijalankan, selain itu gunakan aliran latar belakang setelah pengecekan peluncuran
  • 'always': Terapkan segera kapan saja Perbarui Otomatis berjalan
  • 'onlyDownload': Unduh secara otomatis, emit,, dan tidak pernah atur bundle berikut secara otomatis updateAvailableSalin ke klipbord
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 akan langsung menerapkan pembaruan segera setelah download selesai selama pembaruan dicari, bahkan jika pengguna sedang menggunakan aplikasi. Tanpa pembaruan periodik diaktifkan, ini berarti pembaruan hanya akan diterapkan ketika aplikasi dimulai atau kembali dari latar belakang.

Perlu diingat bahwa karena autoUpdate adalah konfigurasi native, mode aplikasi instan memerlukan penanganan tambahan dalam JavaScript code.

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 sebuah bundle diunduh. Aplikasi Anda kemudian dapat memutuskan kapan untuk memanggil CapacitorUpdater.set() atau menampilkan prompt pembaruan sendiri.

Untuk membuat mode aplikasi instan lebih mudah digunakan, Capgo menyediakan autoSplashscreen option yang secara otomatis mengatur menyembunyikan splashscreen 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 dinyalakan:

  • Plugin ini secara otomatis menyembunyikan layar splashscreen ketika update diterapkan
  • Plugin ini secara otomatis menyembunyikan layar splashscreen ketika tidak ada update yang diperlukan
  • Anda tidak perlu mendengarkan appReady atau memanggil SplashScreen.hide()

Jika Anda lebih suka mengontrol secara manual atau memerlukan logika khusus, 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();

The event fires once the app has finished initializing and applying any pending updates. This is the point at which it’s safe to show your app’s UI, as it ensures the user will see the latest version. appReady In addition to handling the event, we recommend setting the configuration option to when using an instant apply mode. This preserves the current URL path when the app is reloaded due to an update, helping maintain the user’s location in the app and reducing disorientation.

If you don’t handle the event and set when using an instant apply mode, the user may briefly see a stale version of the app, be taken back to the initial route, or see a flicker as the update is applied. appReady Using an instant apply mode can be useful for delivering critical bug fixes or security patches, but it comes with some tradeoffs: keepUrlPathAfterReload The user may see a brief flicker or loading state as the update is applied if you don’t properly handle the splashscreen (either with __CAPGO_KEEP_0__ or manual true Event ini akan memicu ketika aplikasi telah selesai melakukan inisialisasi dan menerapkan perubahan yang menunggu. Ini adalah titik di mana aman menampilkan UI aplikasi Anda, karena itu memastikan pengguna akan melihat versi terbaru.

Ini ditambahkan untuk mengelola event, kami merekomendasikan untuk mengatur opsi konfigurasi ke __CAPGO_KEEP_0__ ketika menggunakan mode aplikasi instan. Ini mempertahankan jalur URL saat ini ketika aplikasi dimuat ulang karena perubahan, membantu menjaga lokasi pengguna di aplikasi dan mengurangi kebingungan. appReady Jika Anda tidak mengelola event dan mengatur __CAPGO_KEEP_0__ ketika menggunakan mode aplikasi instan, pengguna mungkin melihat versi aplikasi yang ketinggalan zaman, dibawa kembali ke rute awal, atau melihat kilauan saat perubahan diterapkan. keepUrlPathAfterReload Menggunakan mode aplikasi instan dapat berguna untuk menyampaikan perbaikan bug kritis atau patch keamanan, tetapi itu datang dengan beberapa kekurangan:

Pengguna mungkin melihat kilauan singkat atau status muat ketika perubahan diterapkan jika Anda tidak mengelola layar splashscreen dengan benar (baik dengan __CAPGO_KEEP_0__ atau manual

  • Event ini akan memicu ketika aplikasi telah selesai melakukan inisialisasi dan menerapkan perubahan yang menunggu. Ini adalah titik di mana aman menampilkan UI aplikasi Anda, karena itu memastikan pengguna akan melihat versi terbaru. autoSplashscreen Ini ditambahkan untuk mengelola event, kami merekomendasikan untuk mengatur opsi konfigurasi ke __CAPGO_KEEP_0__ ketika menggunakan mode aplikasi instan. Ini mempertahankan jalur URL saat ini ketika aplikasi dimuat ulang karena perubahan, membantu menjaga lokasi pengguna di aplikasi dan mengurangi kebingungan. appReady pengelolaan event).
  • Jika pembaruan mengubah status aplikasi atau UI, pengguna mungkin melihat perubahan yang mengganggu di tengah sesi.
  • Lokasi pengguna di aplikasi mungkin hilang jika keepUrlPathAfterReload tidak ditetapkan, sehingga mereka mungkin merasa bingung.
  • Anda perlu mengelola dengan hati-hati penyimpanan dan pemulihan status untuk memastikan transisi yang lancar.

Jika Anda mengaktifkan aplikasi instan, kami merekomendasikan:

  • Menggunakan autoSplashscreen: true untuk setup yang paling sederhana, atau mengelola appReady event secara manual jika Anda memerlukan logika yang kustom.
  • Mengatur keepUrlPathAfterReload ke true untuk mempertahankan lokasi pengguna di aplikasi.
  • Menghemat dan memulihkan keadaan aplikasi sesuai kebutuhan untuk menghindari kehilangan kemajuan pengguna.
  • Menguji secara menyeluruh perilaku update aplikasi untuk memastikan tidak ada transisi yang mengganggu, kehilangan keadaan, atau perubahan lokasi yang membingungkan.

Pada kebanyakan kasus, perilaku update default memberikan keseimbangan yang terbaik dalam mengirimkan update dengan cepat dan mengurangi gangguan. Namun, untuk aplikasi dengan kebutuhan tertentu, Capgo menyediakan fleksibilitas untuk mengatur kapan dan bagaimana update diterapkan.

Jika Anda menggunakan Perilaku Update untuk merencanakan pengiriman update live, hubungkan dengan Capgo Live Updates untuk alur kerja produk di Capgo Live Updates, Ringkasan untuk detail implementasi di Ringkasan, Fitur-Fitur untuk detail implementasi di Fitur-Fitur, Jenis Perbarui untuk detail implementasi di Jenis Perbarui, dan Mulai untuk detail implementasi di Mulai.