Lompat ke konten

Pengaturan Perbarui

Ketika Anda mengeluarkan pembaruan ke aplikasi Capgo Anda, Anda mungkin ingin pengguna Anda menerima pembaruan tersebut secepat mungkin. Namun, Anda juga tidak ingin mengganggu pengalaman mereka dengan memaksa mereka menunggu untuk mengunduh atau memulai aplikasi kembali di tengah sesi.

Polanya pembaruan Capgo dirancang untuk mencapai keseimbangan antara menyampaikan pembaruan dengan cepat dan mengurangi gangguan terhadap pengguna Anda.

Dengan bawaan, inilah cara Capgo mengelola pembaruan aplikasi:

  1. Ketika 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).

  2. Jika ada pembaruan, maka akan diunduh di latar belakang sementara pengguna melanjutkan menggunakan versi aplikasi saat ini.

  3. Setelah download selesai, Capgo menunggu pengguna untuk mengalihkan aplikasi ke latar belakang.

  4. Mengapa versi aplikasi terbaru ini akan berjalan ketika pengguna membawa aplikasi ke depan.

Aliran ini memastikan pengguna selalu menjalankan versi aplikasi terbaru, tanpa pernah terganggu oleh notifikasi update atau dipaksa menunggu download.

Mengaplikasikan update pada event latar belakang atau mati memiliki beberapa keuntungan utama untuk pengalaman pengguna:

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

  • Update diterapkan secara halus di antara sesi, sehingga pengalaman membuka aplikasi selalu segar.

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

Kerugian utama adalah jika pengguna memasang 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:

  • Menyimpan 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).

Dalam beberapa kasus, Anda mungkin ingin memiliki kontrol yang lebih ketat atas kapan pembaruan diterapkan. Misalnya, Anda mungkin ingin memastikan pengguna menyelesaikan aliran yang sedang berlangsung sebelum memperbarui, atau mengkoordinasikan pembaruan aplikasi dengan perubahan 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 menginstal update hingga setelah 1 Juni 2023 DAN aplikasi telah dibackground selama minimal 60 detik.

Kondisi penundaan yang tersedia adalah:

  • date: Menunggu setelah tanggal/waktu spesifik untuk menerapkan update.
  • background: Menunggu durasi minimal setelah aplikasi dibackground untuk menerapkan update.
  • nativeVersion: Menunggu instalasi biner asli dengan versi minimum sebelum menerapkan update.
  • kill: Menunggu event pembunuhan aplikasi selanjutnya untuk menerapkan update.

Kamu bisa mencampur dan mencocokan kondisi-kondisi ini untuk mengontrol secara tepat kapan update diinstal.

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 bukan dalam JavaScript __CAPGO_KEEP_0__. Ini mendukung nilai-nilai ini: capacitor.config.ts file, not in JavaScript code. It supports these values:

  • false Disable pembaruan otomatis 'off'atau
  • true (default): Periksa dan download secara otomatis pada setiap periksa latar depan, kemudian terapkan pembaruan pada saat aplikasi berpindah ke latar belakang 'atBackground' Terminal window
  • 'atInstall': Aplikasikan segera hanya setelah instalasi segar atau pembaruan toko aplikasi asli; lainnya gunakan "atBackground" perilaku
  • 'onLaunch': Aplikasikan segera hanya ketika aplikasi dibawa ke depan dari keadaan mati (start dingin). Setelah cek pertama, kembali ke "atBackground" perilaku
  • 'always': Periksa pada setiap transisi ke depan dan aplikasikan segera ketika pembaruan tersedia
  • 'onlyDownload': Periksa dan download secara otomatis, emit updateAvailable, dan tidak pernah atur bundle berikutnya atau aplikasikan pembaruan secara otomatis

Uji Bangun Nativ Tanpa Pembaruan Langsung

Judul bagian “Uji Bangun Nativ Tanpa Pembaruan Langsung”

Lihat Uji Bangun Nativ Tanpa Pembaruan Langsung untuk keamanan konfigurasi channel-policy, CI, dan versi natif.

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 berulang yang dikendalikan oleh periodCheckDelay bisa memicu perilaku menerapkan langsung yang sama sementara aplikasi tetap terbuka.

Perlu diingat bahwa autoUpdate adalah pengaturan native, sehingga 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 bundel diunduh. Aplikasi Anda kemudian dapat memutuskan kapan untuk memanggil CapacitorUpdater.set() atau menampilkan prompt pembaruan sendiri.

Pengelolaan Layar Splash Otomatis

Judul Bagian: Pengaturan Layar Splash Otomatis

To make instant apply modes easier to use, Capgo provides an autoSplashscreen option yang secara otomatis mengatur 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:

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

Pengaturan Layar Splash Manual

Judul Bagian: Pengaturan Layar Splash Manual

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 ini terjadi setelah aplikasi telah selesai melakukan inisialisasi dan menerapkan pembaruan yang menunggu. Ini adalah titik di mana aman menampilkan antarmuka pengguna aplikasi, karena memastikan pengguna akan melihat versi terbaru. appReady Dengan menangani event ini, kami juga merekomendasikan mengatur opsi konfigurasi menjadi

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 menangani 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 memiliki beberapa kekurangan:

  • User mungkin melihat kilauan singkat atau status muat sementara saat pembaruan diterapkan jika Anda tidak menangani layar splashscreen dengan benar (baik dengan menggunakan autoSplashscreen atau penanganan manual appReady event).
  • Jika pembaruan memodifikasi keadaan aplikasi atau UI, user mungkin melihat perubahan yang mengganggu di tengah sesi.
  • Posisi user di aplikasi mungkin hilang jika keepUrlPathAfterReload tidak ditetapkan, sehingga dapat membuat mereka bingung.
  • Anda perlu menangani dengan hati-hati penyimpanan dan pemulihan keadaan untuk memastikan transisi yang lancar.

Jika Anda memungkinkan aplikasi instan, kami merekomendasikan:

  • Menggunakan autoSplashscreen: true untuk konfigurasi yang paling sederhana, atau menangani manual appReady event jika Anda memerlukan logika kustom.
  • Setting keepUrlPathAfterReload untuk true untuk menjaga lokasi pengguna di aplikasi.
  • Menyimpan dan memulihkan kondisi aplikasi sesuai kebutuhan untuk menghindari kehilangan kemajuan pengguna.
  • Melakukan tes yang teliti terhadap perilaku update aplikasi untuk memastikan tidak ada transisi yang mengganggu, kondisi hilang, atau perubahan lokasi yang membingungkan.

Dalam kebanyakan kasus, perilaku update default memberikan keseimbangan yang terbaik dalam mengirimkan 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 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.