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 mendownload atau memulai aplikasi kembali di tengah sesi.

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

Dengan bawaan, berikut cara Capgo mengelola pembaruan aplikasi:

  1. Saat 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 pembaruan ditemukan, maka ia diunduh di latar belakang sementara pengguna terus menggunakan versi aplikasi saat ini.

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

  4. Pada saat pengguna membawa aplikasi ke depan, mereka akan menjalankan versi yang diperbarui.

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

Penggunaan 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.

  • Penggunaan update dilakukan 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.

  • Menganggap pengaturan perilaku pembaruan untuk aliran sensitif (lihat di bawah).

Pada beberapa kasus, Anda mungkin ingin memiliki kontrol yang lebih spesifik atas kapan pembaruan diterapkan. Misalnya, Anda mungkin ingin memastikan pengguna menyelesaikan aliran yang sedang berlangsung sebelum memperbarui, 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.

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

Mungkin Anda ingin mengaplikasikan perbaruan segera setelah unduh, tanpa menunggu event latar belakang atau event mati, untuk perbaruan kritis atau aplikasi dengan keadaan sederhana. Capgo mendukung hal ini melalui autoUpdate kebijakan di konfigurasi Capacitor Anda.

autoUpdate atau capacitor.config.ts file, not in JavaScript code. It supports these values:

  • false : Matikan periksa pembaruan otomatis 'off'atau
  • true (default): Periksa dan download secara otomatis pada setiap periksa latar depan, kemudian aplikasikan pembaruan pada saat aplikasi berpindah ke latar belakang 'atBackground' __CAPGO_KEEP_0__
  • 'atInstall': Aplikasikan segera hanya setelah instalasi segar atau pembaruan toko aplikasi asli; lainnya gunakan "atBackground" Aplikasi perilaku
  • 'onLaunch': Aplikasikan segera hanya ketika aplikasi dibawa ke depan dari keadaan mati (start dingin). Setelah itu, cek pertama kali, kembali ke "atBackground" Aplikasi perilaku
  • 'always': Cek pada setiap transisi ke depan dan aplikasikan segera ketika pembaruan tersedia
  • 'onlyDownload': Cek 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 versi natif, kebijakan saluran, 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 pembaruan setiap kali aplikasi berpindah ke latar depan dan langsung mengaplikasikan pembaruan setelah download selesai selama periksaan tersebut, bahkan jika pengguna sedang menggunakan aplikasi. Pemeriksaan berkala dikontrol oleh periodCheckDelay juga dapat memicu perilaku aplikasi instan 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.

Pengaturan Splashscreen Otomatis

Pengaturan Tampilan Splash Otomatis

Untuk memudahkan penggunaan mode aplikasi instan, Capgo menyediakan autoSplashscreen option yang secara otomatis menghandle menyembunyikan tampilan 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:

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

Pengaturan Tampilan Splash Manual

Pengaturan Tampilan Splash Otomatis

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();

Point ini appReady acara ini meledak sekali aplikasi telah selesai menginisialisasi dan menerapkan pembaruan yang menunggu. Ini adalah titik di mana aman menampilkan antarmuka pengguna aplikasi, karena memastikan pengguna akan melihat versi terbaru.

Dalam menangani acara ini, kami juga merekomendasikan mengatur opsi konfigurasi ke appReady 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. keepUrlPathAfterReload Jika Anda tidak menangani acara ini dan mengatur true 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.

__CAPGO_KEEP_0__ appReady __CAPGO_KEEP_1__ keepUrlPathAfterReload __CAPGO_KEEP_2__

Memanfaatkan mode aplikasi instan dapat berguna untuk menyampaikan perbaikan bug kritikal atau patch keamanan, tetapi hal ini memiliki beberapa kekurangan:

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

Jika Anda mengaktifkan aplikasi instan, kami merekomendasikan:

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

Pada umumnya, perilaku update default memberikan keseimbangan yang baik dalam menyampaikan 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 penyampaian 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.