Lompat ke konten

Mulai

Jendela Terminal
bun add @capgo/capacitor-updater
bunx cap sync

Bagi pengguna kebanyakan, kami merekomendasikan mengikuti petunjuk Quickstart utama yang mencakup baik instalasi plugin dan Capgo integrasi cloud.

Petunjuk ini fokus pada detail teknis plugin untuk pengguna lanjutan yang ingin memahami mekanisme dasar atau mengimplementasikan pembaruan self-hosted.

Plugin Pembarui Capacitor memungkinkan pembaruan perangkat keras (OTA) untuk aplikasi-aplikasi Capacitor Anda. Ini memungkinkan Anda untuk membarui aplikasi Anda tanpa harus melewati tinjauan toko aplikasi.

  1. Unduh Paket: Plugin mengunduh paket pembarui (file ZIP yang berisi aset web Anda)
  2. Ekstraksi: Paket dipisahkan ke penyimpanan perangkat
  3. Pembaruan Segera: Aplikasi beralih ke paket baru tanpa memerlukan restart
  4. Pengganti: Jika update gagal, aplikasi kembali ke versi yang berfungsi sebelumnya

Cara termudah untuk menggunakan plugin dengan manajemen update otomatis:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Plugin handles everything automatically
// Configure in capacitor.config.ts

Tambahkan ke capacitor.config.ts:

{
plugins: {
CapacitorUpdater: {
autoUpdate: true,
updateUrl: 'https://your-update-server.com/api/updates'
}
}
}

Untuk kendali lanjutan atas proses update:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Download an update
const bundle = await CapacitorUpdater.download({
url: 'https://your-server.com/updates/v1.0.1.zip',
version: '1.0.1'
});
// Set the bundle (will be used on next app start)
await CapacitorUpdater.set({
id: bundle.id
});
// Or reload immediately
await CapacitorUpdater.reload();

Tidak diperlukan konfigurasi tambahan. Plugin ini berfungsi secara otomatis.

Tidak diperlukan konfigurasi tambahan. Plugin ini berfungsi secara otomatis.

Unduh Perbarui

Bagikan Update
import { CapacitorUpdater } from '@capgo/capacitor-updater';
const bundle = await CapacitorUpdater.download({
url: 'https://example.com/update.zip',
version: '1.0.1'
});
console.log('Downloaded bundle:', bundle.id);

Atur Paket Aktif

Bagikan Paket Aktif
// Set bundle to be used on next app start
await CapacitorUpdater.set({
id: bundle.id
});

Muat Ulang dengan Paket Baru

Bagikan Muat Ulang dengan Paket Baru
// Reload app immediately with new bundle
await CapacitorUpdater.reload();
const { bundles } = await CapacitorUpdater.list();
console.log('Available bundles:', bundles);
await CapacitorUpdater.delete({
id: 'bundle-id'
});
const { bundle } = await CapacitorUpdater.current();
console.log('Current bundle:', bundle.version);

Tetapkan untuk peristiwa update:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Listen for download progress
CapacitorUpdater.addListener('download', (info) => {
console.log('Download progress:', info.percent);
});
// Listen for download completion
CapacitorUpdater.addListener('downloadComplete', (bundle) => {
console.log('Download complete:', bundle.version);
});
// Listen for update failures
CapacitorUpdater.addListener('updateFailed', (error) => {
console.error('Update failed:', error);
});
// Listen for successful updates
CapacitorUpdater.addListener('updateAvailable', (info) => {
console.log('Update available:', info.version);
});

Konfigurasi plugin di dalam Anda capacitor.config.ts:

{
plugins: {
CapacitorUpdater: {
// Auto-update settings
autoUpdate: true,
updateUrl: 'https://api.example.com/updates',
// Update behavior
resetWhenUpdate: true,
directUpdate: false,
// Version settings
version: '1.0.0',
// Security
allowModifyUrl: false,
// Stats collection
statsUrl: 'https://api.example.com/stats',
// Channel (for Capgo cloud)
defaultChannel: 'production'
}
}
}

Cara termudah untuk memulai:

// Install the Capgo CLI
bun add -g @capgo/cli
// Login to Capgo
npx @capgo/cli login
// Upload your first bundle
npx @capgo/cli bundle upload
// The plugin auto-updates from Capgo cloud

Lihat Petunjuk cepat utama untuk informasi lebih lanjut.

Tetapkan server pembaruan sendiri:

// Configure your update endpoint
{
plugins: {
CapacitorUpdater: {
autoUpdate: true,
updateUrl: 'https://your-server.com/api/check-update'
}
}
}

Server Anda harus mengembalikan:

{
"version": "1.0.1",
"url": "https://your-server.com/updates/1.0.1.zip"
}

Lihat Mode Diri Sendiri untuk detail lengkap.

Kontrol lengkap atas pembaruan:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
async function checkAndUpdate() {
// Check for updates from your server
const response = await fetch('https://api.example.com/check-update');
const { version, url } = await response.json();
// Download the update
const bundle = await CapacitorUpdater.download({
url,
version
});
// Notify bundle is ready
await CapacitorUpdater.notifyAppReady();
// Set as next version
await CapacitorUpdater.set({ id: bundle.id });
// Reload when ready
await CapacitorUpdater.reload();
}

Praktik Terbaik

Praktik Terbaik
  • Selalu panggil notifyAppReady() ketika aplikasi Anda berhasil dimuat
  • Uji coba pembaruan secara menyeluruh sebelum memasukkannya ke produksi
  • Implementasikan penanganan kesalahan yang tepat untuk kegagalan jaringan
  • Gunakan nomor versi secara konsisten
  • Tetapkan ukuran bundle kecil untuk download yang lebih cepat
  • Monitor tingkat kesuksesan pembaruan

Langkah-Langkah Selanjutnya

Referensi Plugin __CAPGO_KEEP_0__