Lompat ke konten

Perbarui perilaku

When Anda mengeluarkan pembaruan untuk 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 di tengah sesi.

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

Dengan default, 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 (default 10 menit).

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

  3. Saat proses pengunduhan selesai, Capgo menunggu pengguna untuk mengalihkan aplikasi ke latar belakang.

  4. Saat pengguna membawa aplikasi ke latar depan lagi, mereka akan menjalankan versi yang diperbarui.

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

Penerapan 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 mengembalikannya, 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.

  • Hindari pembaruan yang sangat sering yang mengubah bagian besar dari keadaan aplikasi.

  • Mengingat perlu melakukan pengaturan perilaku pembaruan untuk aliran sensitif (lihat di bawah).

Pada 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 melakukan pembaruan, 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 menginstal pembaruan hingga setelah 1 Juni 2023 DAN aplikasi telah dibackground selama minimal 60 detik.

Syarat-syarat penundaan yang tersedia adalah:

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

Kamu bisa mencampur dan memilih kondisi-kondisi ini untuk mengontrol secara tepat kapan pembaruan diinstal.

For critical updates or apps with very simple state, you may want to apply an update as soon as it’s downloaded, without waiting for a background or kill event. Capgo supports this via the autoUpdate Capacitor

autoUpdate ditetapkan di file Anda, bukan di JavaScript __CAPGO_KEEP_0__. Ini mendukung nilai-nilai: capacitor.config.ts file, not in JavaScript code. It supports these values:

  • false : Matikan periksa otomatis update 'off'atau
  • true (default): Periksa dan download secara otomatis pada setiap periksa latar depan, kemudian aplikasikan update pada saat aplikasi berpindah ke latar belakang 'atBackground' : Aplikasikan segera hanya setelah instalasi segar atau update toko aplikasi asli; lainnya gunakan
  • 'atInstall': Aplikasikan segera hanya ketika aplikasi dibawa ke depan dari keadaan mati (start dingin). Setelah periksa pertama, kembali ke "atBackground" behavior
  • 'onLaunch'behavior "atBackground" behavior
  • 'always': Periksa setiap transisi latar depan dan terapkan segera ketika update tersedia
  • 'onlyDownload': Periksa dan download secara otomatis, emit updateAvailable, dan tidak pernah atur bundle berikutnya atau terapkan update secara otomatis
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 latar depan dan segera menerapkan update segera setelah download selesai selama periksa itu, bahkan jika pengguna sedang aktif menggunakan aplikasi. Periksa periodik yang dikontrol oleh periodCheckDelay dapat memicu perilaku terapkan segera yang sama sementara aplikasi tetap terbuka.

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

Jika Anda ingin Capgo memeriksa dan mengunduh pembaruan 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 menentukan kapan untuk memanggil CapacitorUpdater.set() atau menampilkan pesan 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 secara otomatis menyembunyikan layar splash ketika tidak ada pembaruan yang diperlukan
  • Anda tidak perlu mendengarkan secara manual appReady events atau panggilan SplashScreen.hide()

Jika Anda lebih suka mengontrol secara manual atau memerlukan logika kustom, Anda dapat menonaktifkan autoSplashscreen dan tangani sendiri:

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

The appReady event ini akan mengeluarkan sekali ketika aplikasi telah selesai menginisialisasi dan menerapkan perubahan yang menunggu. Poin ini adalah saat yang aman untuk menampilkan UI aplikasi Anda, karena memastikan pengguna akan melihat versi terbaru.

Selain menghandle event appReady event ini, kami merekomendasikan mengatur opsi konfigurasi keepUrlPathAfterReload ke true ketika menggunakan mode aplikasi instant apply. Ini mempertahankan jalur URL saat ini ketika aplikasi di-reload karena perubahan, membantu menjaga lokasi pengguna di aplikasi dan mengurangi kebingungan.

If Anda tidak menghandle event dan menetapkan appReady ketika menggunakan mode aplikasi instan, pengguna mungkin melihat versi aplikasi yang ketinggalan zaman secara singkat, dibawa kembali ke rute awal, atau melihat kilauan saat pembaruan diterapkan. keepUrlPathAfterReload Menggunakan mode aplikasi instan dapat berguna untuk menyampaikan perbaikan bug kritis atau patch keamanan, tetapi hal ini datang dengan beberapa kekurangan:

Pengguna mungkin melihat kilauan singkat atau status loading saat pembaruan diterapkan jika Anda tidak menghandle layar splashscreen (baik dengan

  • atau pengelolaan manual autoSplashscreen event). appReady Jika pembaruan memodifikasi status aplikasi atau UI, pengguna mungkin melihat perubahan yang mengganggu di tengah sesi.
  • Posisi pengguna di aplikasi mungkin hilang jika
  • tidak ditetapkan, sehingga mereka mungkin merasa bingung. keepUrlPathAfterReload Anda perlu menghandle penyimpanan dan pemulihan status dengan hati-hati untuk memastikan transisi yang lancar.
  • Jika Anda memungkinkan mode aplikasi instan, kami merekomendasikan:

__CAPGO_KEEP_0__

  • Menggunakan autoSplashscreen: true untuk konfigurasi sederhana, atau mengelola secara manual event jika Anda memerlukan logika kustom. appReady Mengatur
  • ke keepUrlPathAfterReload untuk mempertahankan lokasi pengguna di aplikasi. true 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 umumnya, perilaku update default memberikan keseimbangan terbaik dalam mengirimkan update dengan cepat dan mengurangi gangguan. Namun, untuk aplikasi dengan kebutuhan tertentu, __CAPGO_KEEP_0__ menyediakan fleksibilitas untuk mengatur kapan dan bagaimana update diterapkan.

In most cases, the default update behavior provides the best balance of delivering updates quickly and minimizing disruption. But for apps with specific needs, Capgo provides the flexibility to customize when and how updates are applied.

Judul bagian “Teruskan dari Perilaku Update”

Jika Anda menggunakan

]} Perbarui perilaku untuk merencanakan pengiriman perbarui hidup, hubungkannya dengan Capgo Perbarui Hidup untuk alur kerja produk di Capgo Perbarui Hidup, Ringkasan untuk detail implementasi di Ringkasan, Fitur untuk detail implementasi di Fitur, Jenis Perbarui untuk detail implementasi di Jenis Perbarui, dan Mulai Membuat untuk detail implementasi di Mulai Membuat.