__CAPGO_KEEP_0__ - Live Updates untuk Aplikasi __CAPGO_KEEP_1__

Pengaturan Perbaruan

Ketika Anda merilis update untuk aplikasi Capgo Anda, Anda mungkin ingin pengguna Anda menerima update tersebut secepat mungkin. Tapi Anda juga tidak ingin mengganggu pengalaman mereka dengan memaksa mereka menunggu download atau memulai aplikasi ulang di tengah sesi.

Capgo’s perilaku update dirancang untuk mencapai keseimbangan antara menyampaikan update dengan cepat dan mengurangi gangguan bagi pengguna Anda.

Dengan default, berikut cara Capgo mengelola update aplikasi:

  1. On saat aplikasi diluncurkan, plugin Capgo memeriksa apakah ada pembaruan baru yang tersedia.

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

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

  4. Saat pengguna meluncurkan aplikasi berikutnya, mereka akan menjalankan versi yang diperbarui.

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

Penerapan pembaruan pada event background atau kill memiliki beberapa keuntungan utama untuk pengalaman pengguna:

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

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

  • Kamu bisa mengirimkan perubahan sering tanpa khawatir mengganggu pengguna aktif.

Kelemahan utama adalah jika pengguna memasang latar belakang dan segera mengaktifkan kembali aplikasi, mereka mungkin kehilangan kondisi yang belum disimpan sejak perubahan diterapkan antara aksi-aksi tersebut.

Untuk mengurangi dampak ini, kami merekomendasikan:

  • Menghemat kondisi secara sering dan memulihkannya dengan baik ketika aplikasi kembali.

  • Menghindari perubahan yang sangat sering yang mengubah bagian besar dari kondisi aplikasi.

  • Menganggap perubahan perilaku penerapan untuk aliran sensitif (lihat di bawah).

Dalam beberapa kasus, kamu mungkin ingin memiliki kontrol lebih lanjut atas kapan perubahan diterapkan. Misalnya, kamu mungkin ingin memastikan pengguna menyelesaikan aliran yang sedang berlangsung sebelum mengupdate, atau mengkoordinasikan perubahan aplikasi dengan perubahan sisi server.

Capgo menyediakan sebuah setDelay fungsi yang memungkinkan kamu menentukan kondisi yang harus dipenuhi sebelum perubahan 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 update hingga setelah 1 Juni 2023 DAN aplikasi telah dibackground selama setidaknya 60 detik.

Kondisi penundaan yang tersedia adalah:

  • date: Tunggu hingga setelah tanggal/waktu spesifik untuk menerapkan update.
  • background: Tunggu durasi minimum 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.

Anda dapat mencampur dan mencocokan kondisi-kondisi ini untuk mengontrol secara tepat kapan update diinstal.

Mengaplikasikan Perbaruan Secara Langsung

Judul Bagian “Mengaplikasikan Perbaruan Secara Langsung”

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

autoUpdate ditentukan di file capacitor.config.ts bukan JavaScript code. Ia mendukung nilai-nilai ini:

  • false atau 'off': Nonaktifkan Auto Update
  • true atau 'atBackground' (default): Download secara otomatis dan terapkan ketika aplikasi berpindah ke latar belakang
  • 'atInstall': Terapkan segera hanya setelah instalasi asli atau pembaruan aplikasi native, selain itu gunakan aliran latar belakang
  • 'onLaunch': Terapkan segera pada saat aplikasi dijalankan, selain itu gunakan aliran latar belakang setelah periksa peluncuran
  • 'always': Terapkan segera ketika Auto Update berjalan
  • 'onlyDownload': Download secara otomatis, emit, dan tidak pernah atur bundle berikut secara otomatis updateAvailableSalin ke clipboard
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;

With autoUpdate: 'always', Capgo akan langsung menerapkan pembaruan segera setelah download selesai selama cek pembaruan, bahkan jika pengguna sedang menggunakan aplikasi. Tanpa cek berkala diaktifkan, ini berarti pembaruan hanya akan diterapkan ketika aplikasi dimulai atau kembali dari latar belakang.

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

Jika Anda ingin Capgo untuk melakukan cek dan mengunduh pembaruan otomatis tetapi tidak pernah menerapkan mereka 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 menentukan kapan untuk memanggil CapacitorUpdater.set() atau menampilkan prompt pembaruan sendiri.

Untuk membuat mode aplikasi instan lebih mudah digunakan, Capgo menyediakan autoSplashscreen opsi 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 dihubungkan:

  • Plugin secara otomatis menyembunyikan layar splash ketika pembaruan diterapkan
  • Plugin ini secara otomatis menyembunyikan layar splash ketika tidak ada update yang diperlukan
  • Anda tidak perlu mendengarkan secara manual untuk 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();

Event appReady Event ini melepaskan sekali aplikasi telah selesai menginisialisasi dan menerapkan update yang menunggu. Pada titik ini, sudah aman menampilkan UI aplikasi, karena memastikan pengguna akan melihat versi terbaru.

Selain mengelola event appReady kami merekomendasikan mengatur keepUrlPathAfterReload Pilihan konfigurasi untuk true ketika menggunakan mode aplikasi instan. Ini mempertahankan jalur URL saat aplikasi di-reload karena pembaruan, membantu menjaga lokasi pengguna di aplikasi dan mengurangi kebingungan.

Jika Anda tidak menghandle event appReady dan mengatur keepUrlPathAfterReload ketika menggunakan mode aplikasi instan, pengguna mungkin melihat versi aplikasi yang ketinggalan zaman, dibawa kembali ke rute awal, atau melihat kilauan saat pembaruan diterapkan.

Menggunakan mode aplikasi instan dapat berguna untuk menyampaikan perbaikan bug kritis atau patch keamanan, tetapi ada beberapa kekurangan:

  • Pengguna mungkin melihat kilauan singkat atau status loading saat pembaruan diterapkan jika Anda tidak menghandle layar splashscreen (baik dengan autoSplashscreen atau pengelolaan manual appReady event).
  • Jika pembaruan memodifikasi state aplikasi atau UI, pengguna mungkin melihat perubahan yang mengganggu di tengah sesi.
  • Lokasi pengguna di aplikasi mungkin hilang jika keepUrlPathAfterReload tidak diatur, sehingga mengganggu mereka.
  • Anda perlu menangani penyimpanan dan pemulihan keadaan dengan hati-hati untuk memastikan transisi yang lancar.

Jika Anda mengaktifkan aplikasi instan, kami merekomendasikan:

  • Menggunakan autoSplashscreen: true untuk konfigurasi yang paling sederhana, atau menangani appReady event secara manual jika Anda memerlukan logika kustom.
  • Mengatur keepUrlPathAfterReload ke true untuk mempertahankan lokasi pengguna di aplikasi.
  • Menyimpan 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.

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

Jika Anda menggunakan Update Behavior 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 untuk detail implementasi di Fitur, Jenis Update untuk detail implementasi di Jenis Update Mulai untuk detail implementasi di Mulai.