Lompat ke konten

Pengaturan Pembaruan

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

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

Dengan default, berikut adalah cara Capgo menghandle pembaruan aplikasi:

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

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

  3. Setelah unduhan 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 pengguna selalu menjalankan versi aplikasi terbaru tanpa pernah terganggu oleh notifikasi pembaruan atau dipaksa menunggu unduhan.

Mengaplikasikan pembaruan pada event latar belakang atau event mati 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.

Kelemahan utama adalah jika pengguna memasang aplikasi ke latar belakang dan segera mengaktifkannya, 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 perlu mempersonalisasi perilaku pembaruan untuk aliran sensitif (lihat di bawah).

In beberapa kasus, Anda mungkin ingin memiliki kontrol lebih lanjut atas waktu tepat ketika pembaruan diterapkan. Misalnya, Anda mungkin ingin memastikan pengguna menyelesaikan alur yang sedang berlangsung sebelum memperbarui, atau koordinasikan 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 menginstal pembaruan hingga setelah 1 Juni 2023 DAN aplikasi telah di background selama minimal 60 detik.

Syarat-syarat penundaan yang tersedia adalah:

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

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

Untuk pembaruan kritis atau aplikasi dengan keadaan sederhana, Anda mungkin ingin mengaplikasikan pembaruan segera setelah diunduh, tanpa menunggu kejadian latar belakang atau kejadian pembunuhan. Capgo mendukung hal ini melalui directUpdate opsi pengaturan.

directUpdate ditetapkan di file capacitor.config.ts bukan di JavaScript code. Ia mendukung tiga nilai:

  • false (default): Tidak melakukan pembaruan langsung (gunakan perilaku default: download pada awal, tetapkan ketika dibackground)
  • 'atInstall': Pembaruan langsung hanya dilakukan ketika aplikasi diinstal, diperbarui dari toko, lainnya berlaku seperti directUpdate = false
  • 'onLaunch': Hanya update langsung pada aplikasi yang terpasang, diperbarui dari toko atau setelah aplikasi dimatikan, kecuali berlaku sebagai directUpdate = false
  • 'always': Hanya update langsung dalam semua kasus sebelumnya (aplikasi terpasang, diperbarui dari toko, setelah aplikasi dimatikan atau aplikasi diresume), tidak pernah berlaku sebagai directUpdate = false
  • true (deprecated): Sama seperti 'always' untuk kompatibilitas mundur
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
autoUpdate: true,
directUpdate: 'always', // or 'atInstall' for updates only on app install/update
autoSplashscreen: true, // NEW: Automatically handle splashscreen
keepUrlPathAfterReload: true,
},
SplashScreen: {
launchAutoHide: false, // Still required when using directUpdate
},
},
};
export default config;

Dengan directUpdate aktif, Capgo akan langsung menerapkan update segera setelah download selesai selama proses update, bahkan jika pengguna sedang menggunakan aplikasi. Tanpa pemeriksaan berkala yang diaktifkan, ini berarti update hanya akan diterapkan ketika aplikasi dijalankan atau diresume dari latar belakang.

Perlu diingat bahwa karena directUpdate adalah pengaturan asli, sehingga memerlukan penanganan tambahan di JavaScript code.

Untuk membuat directUpdate lebih mudah digunakan, Capgo menyediakan autoSplashscreen option yang secara otomatis menangani menyembunyikan layar splash untuk Anda (tersedia sejak versi 7.6.0):

const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
autoUpdate: true,
directUpdate: 'always', // or 'atInstall'
autoSplashscreen: true, // Automatically hide splashscreen
keepUrlPathAfterReload: true,
},
SplashScreen: {
launchAutoHide: false,
},
},
};

Ketika autoSplashscreen dapat diaktifkan:

  • 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 secara manual appReady atau memanggil SplashScreen.hide()

dan mengelola sendiri: autoSplashscreen Salin ke clipboard

import { CapacitorUpdater } from '@capgo/capacitor-updater';
import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => {
// Hide splash screen
SplashScreen.hide();
});
CapacitorUpdater.notifyAppReady();

Acara ini akan memicu setelah aplikasi telah selesai menginisialisasi dan menerapkan perubahan yang menunggu. Ini adalah titik di mana aman menampilkan UI aplikasi, karena memastikan pengguna akan melihat versi terbaru. appReady Selain mengelola acara "

Kami merekomendasikan mengatur opsi konfigurasi " appReady " ketika menggunakan " keepUrlPathAfterReload . Ini mempertahankan jalur URL saat ini ketika aplikasi dimuat ulang karena perubahan, membantu menjaga lokasi pengguna di aplikasi dan mengurangi kebingungan. true Jika Anda tidak mengelola acara " directUpdate" dan mengatur "

" ketika menggunakan " appReady ", pengguna mungkin akan melihat versi aplikasi yang ketinggalan zaman secara singkat, dibawa kembali ke rute awal, atau melihat kilauan saat perubahan diterapkan. keepUrlPathAfterReload Menggunakan " directUpdate"

" directUpdate Bisa berguna untuk menyampaikan perbaikan bug kritikal atau patch keamanan, tetapi itu datang dengan beberapa kekurangan:

  • Pengguna mungkin melihat kilauan singkat atau status memuat jika Anda tidak menangani layar splashscreen dengan benar (baik dengan autoSplashscreen atau penanganan manual appReady event).
  • Jika pembaruan mengubah keadaan 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 directUpdate, kami merekomendasikan:

  • Menggunakan autoSplashscreen: true untuk setup yang paling sederhana, atau menangani manual appReady jika Anda memerlukan logika khusus.
  • Pengaturan keepUrlPathAfterReload ke true ke untuk mempertahankan lokasi pengguna di aplikasi.
  • Menghemat dan memulihkan keadaan aplikasi sesuai kebutuhan untuk menghindari kehilangan kemajuan pengguna.
  • Menguji aplikasi Anda secara menyeluruh untuk memastikan tidak ada transisi pembaruan yang tidak nyaman, kehilangan keadaan, atau perubahan lokasi yang membingungkan.

Pada umumnya, perilaku pembaruan default memberikan keseimbangan terbaik dalam mengirimkan pembaruan dengan cepat dan mengurangi gangguan. Namun, untuk aplikasi dengan kebutuhan khusus, Capgo menyediakan fleksibilitas untuk mengatur kapan dan bagaimana pembaruan diterapkan.