Langsung ke konten

기능 및 설정

Konfigurasi Plugin Updater

Lihat Readme Github untuk informasi lebih lanjut

CapacitorUpdater dapat dikonfigurasi dengan opsi berikut:

PropTypeDeskripsiDefaultSejak
appReadyTimeoutnumberMengatur jumlah milidetik plugin native harus menunggu sebelum menganggap pembaruan ‘gagal’ Hanya tersedia untuk Android dan iOS10000 // (10 detik)
responseTimeoutnumberMengatur jumlah milidetik plugin native harus menunggu sebelum menganggap API timeout Hanya tersedia untuk Android dan iOS20 // (20 detik)
autoDeleteFailedbooleanMengatur apakah plugin harus secara otomatis menghapus bundle yang gagal Hanya tersedia untuk Android dan iOStrue
autoDeletePreviousbooleanMengatur apakah plugin harus secara otomatis menghapus bundle sebelumnya setelah pembaruan berhasil Hanya tersedia untuk Android dan iOStrue
autoUpdatebooleanMengatur apakah plugin harus menggunakan Pembaruan Otomatis melalui server pembaruan Hanya tersedia untuk Android dan iOStrue
resetWhenUpdatebooleanSecara otomatis menghapus bundle yang telah diunduh sebelumnya ketika bundle aplikasi native yang lebih baru diinstal ke perangkat Hanya tersedia untuk Android dan iOStrue
updateUrlstringMengatur URL / endpoint ke mana pemeriksaan pembaruan dikirim Hanya tersedia untuk Android dan iOShttps://plugincapgoapp/updates
channelUrlstringMengatur URL / endpoint untuk operasi channel Hanya tersedia untuk Android dan iOShttps://plugincapgoapp/channel_self
statsUrlstringMengatur URL / endpoint ke mana statistik pembaruan dikirim Hanya tersedia untuk Android dan iOS Atur ke "" untuk menonaktifkan pelaporan statistikhttps://plugincapgoapp/stats
privateKeystringMengatur kunci pribadi untuk enkripsi pembaruan langsung end to end Hanya tersedia untuk Android dan iOS Tidak digunakan lagi di versi 620 akan dihapus di versi 700undefined
publicKeystringMengatur kunci publik untuk enkripsi pembaruan langsung end to end Versi 2 Hanya tersedia untuk Android dan iOSundefined620
versionstringMengatur versi saat ini dari aplikasi Ini akan digunakan untuk permintaan pembaruan pertama Jika tidak diatur, plugin akan mendapatkan versi dari kode native Hanya untuk Android dan iOSundefined41748
directUpdatebooleanMembuat plugin langsung menginstal pembaruan ketika aplikasi baru saja diperbarui/diinstal Hanya untuk mode autoUpdate Hanya tersedia untuk Android dan iOSundefined510
periodCheckDelaynumberMengatur delay periode untuk pemeriksaan pembaruan berkala dalam satuan detik Hanya tersedia untuk Android dan iOS Tidak boleh kurang dari 600 detik (10 menit)600 // (10 menit)
localS3booleanMengatur CLI untuk menggunakan server lokal untuk pengujian atau server pembaruan self-hostedundefined41748
localHoststringMengatur CLI untuk menggunakan server lokal untuk pengujian atau server pembaruan self-hostedundefined41748
localWebHoststringMengatur CLI untuk menggunakan server lokal untuk pengujian atau server pembaruan self-hostedundefined41748
localSupastringMengatur CLI untuk menggunakan server lokal untuk pengujian atau server pembaruan self-hostedundefined41748
localSupaAnonstringMengatur CLI untuk menggunakan server lokal untuk pengujianundefined41748
localApistringMengatur CLI untuk menggunakan api lokal untuk pengujianundefined633
localApiFilesstringMengatur CLI untuk menggunakan api file lokal untuk pengujianundefined633
allowModifyUrlbooleanMengizinkan plugin untuk memodifikasi updateUrl, statsUrl dan channelUrl secara dinamis dari sisi JavaScriptfalse540
defaultChannelstringMengatur channel default untuk aplikasi dalam konfigurasiundefined550
appIdstringMengkonfigurasi id aplikasi untuk aplikasi dalam konfigurasiundefined600
keepUrlPathAfterReloadbooleanMengkonfigurasi plugin untuk mempertahankan path URL setelah reload PERINGATAN: Ketika reload dipicu, ‘windowhistory’ akan dihapusfalse680

Contoh

Dalam capacitorconfigjson:

{
"plugins": {
"CapacitorUpdater": {
"appReadyTimeout": 1000 // (1 detik),
"responseTimeout": 10 // (10 detik),
"autoDeleteFailed": false,
"autoDeletePrevious": false,
"autoUpdate": false,
"resetWhenUpdate": false,
"updateUrl": https://examplecom/api/auto_update,
"channelUrl": https://examplecom/api/channel,
"statsUrl": https://examplecom/api/stats,
"privateKey": undefined,
"publicKey": undefined,
"version": undefined,
"directUpdate": undefined,
"periodCheckDelay": undefined,
"localS3": undefined,
"localHost": undefined,
"localWebHost": undefined,
"localSupa": undefined,
"localSupaAnon": undefined,
"localApi": undefined,
"localApiFiles": undefined,
"allowModifyUrl": undefined,
"defaultChannel": undefined,
"appId": undefined,
"keepUrlPathAfterReload": undefined
}
}
}

Dalam capacitorconfigts:

/// <reference types="@capgo/capacitor-updater" />
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
appReadyTimeout: 1000 // (1 detik),
responseTimeout: 10 // (10 detik),
autoDeleteFailed: false,
autoDeletePrevious: false,
autoUpdate: false,
resetWhenUpdate: false,
updateUrl: https://examplecom/api/auto_update,
channelUrl: https://examplecom/api/channel,
statsUrl: https://examplecom/api/stats,
privateKey: undefined,
publicKey: undefined,
version: undefined,
directUpdate: undefined,
periodCheckDelay: undefined,
localS3: undefined,
localHost: undefined,
localWebHost: undefined,
localSupa: undefined,
localSupaAnon: undefined,
localApi: undefined,
localApiFiles: undefined,
allowModifyUrl: undefined,
defaultChannel: undefined,
appId: undefined,
keepUrlPathAfterReload: undefined,
},
},
};
export default config;

Methods

notifyAppReady()

notifyAppReady() => Promise<AppReadyResult>

Memberi tahu Capacitor Updater bahwa bundle saat ini berjalan (rollback akan terjadi jika metode ini tidak dipanggil pada setiap peluncuran aplikasi) Secara default metode ini harus dipanggil dalam 10 detik pertama setelah peluncuran aplikasi, jika tidak rollback akan terjadi Ubah perilaku ini dengan {@link appReadyTimeout}

Returns: Promise<AppReadyResult>


setUpdateUrl()

setUpdateUrl(options: UpdateUrl) => Promise<void>

Mengatur updateUrl untuk aplikasi, ini akan digunakan untuk memeriksa pembaruan

ParamTypeDescription
optionsUpdateUrlberisi URL yang digunakan untuk memeriksa pembaruan

Since: 540


setStatsUrl()

setStatsUrl(options: StatsUrl) => Promise<void>

Mengatur statsUrl untuk aplikasi, ini akan digunakan untuk mengirim statistik. Memberikan string kosong akan menonaktifkan pengumpulan statistik

ParamTypeDescription
optionsStatsUrlberisi URL yang digunakan untuk mengirim statistik

Since: 540


setChannelUrl()

setChannelUrl(options: ChannelUrl) => Promise<void>

Mengatur channelUrl untuk aplikasi, ini akan digunakan untuk mengatur channel

ParamTypeDescription
optionsChannelUrlberisi URL yang digunakan untuk mengatur channel

Since: 540


download()

download(options: DownloadOptions) => Promise<BundleInfo>

Mengunduh bundle baru dari URL yang disediakan, ini harus berupa file zip, dengan file di dalamnya atau dengan id unik di dalamnya dengan semua file Anda

ParamTypeDescription
optionsDownloadOptionsThe {@link DownloadOptions} untuk mengunduh zip bundle baru

Returns: Promise<BundleInfo>


next()

next(options: BundleId) => Promise<BundleInfo>

Mengatur bundle berikutnya yang akan digunakan ketika aplikasi dimuat ulang| Param | Type | Description | | ------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | options | BundleId | Berisi ID Bundle berikutnya untuk diatur pada peluncuran aplikasi selanjutnya {@link BundleInfoid} |

Returns: Promise<BundleInfo>


set()

set(options: BundleId) => Promise<void>

Mengatur bundle saat ini dan segera memuat ulang aplikasi

ParamTypeDescription
optionsBundleIdObjek {@link BundleId} berisi id bundle baru yang akan diatur sebagai saat ini

delete()

delete(options: BundleId) => Promise<void>

Menghapus bundle yang ditentukan dari penyimpanan aplikasi native. Gunakan bersama {@link list} untuk mendapatkan ID Bundle yang tersimpan

ParamTypeDescription
optionsBundleIdObjek {@link BundleId} berisi ID bundle yang akan dihapus (catatan, ini adalah id bundle, BUKAN nama versi)

list()

list(options?: ListOptions | undefined) => Promise<BundleListResult>

Dapatkan semua bundle yang telah diunduh secara lokal di aplikasi Anda

ParamTypeDescription
optionsListOptions{@link ListOptions} untuk daftar bundle

Returns: Promise<BundleListResult>


reset()

reset(options?: ResetOptions | undefined) => Promise<void>

Mengatur ulang aplikasi ke bundle ‘builtin’ (yang dikirim ke Apple App Store / Google Play Store) atau bundle yang terakhir berhasil dimuat

ParamTypeDescription
optionsResetOptionsBerisi {@link ResetOptionstoLastSuccessful}, ‘true’ mengatur ulang ke bundle builtin dan ‘false’ akan mengatur ulang ke bundle terakhir yang berhasil dimuat

current()

current() => Promise<CurrentBundleResult>

Dapatkan bundle saat ini, jika tidak ada yang diatur maka akan mengembalikan ‘builtin’ currentNative adalah bundle asli yang diinstal pada perangkat

Returns: Promise<CurrentBundleResult>


reload()

reload() => Promise<void>

Memuat ulang tampilan


setMultiDelay()

setMultiDelay(options: MultiDelayConditions) => Promise<void>

Mengatur array {@link DelayCondition} yang berisi kondisi yang akan digunakan Plugin untuk menunda pembaruan Setelah semua kondisi terpenuhi, proses pembaruan akan berjalan kembali seperti biasa, jadi pembaruan akan diinstal setelah aplikasi masuk ke background atau dimatikan Untuk jenis ‘date’, nilai harus berupa string tanggal iso8601 Untuk jenis ‘background’, nilai harus berupa angka dalam milidetik Untuk jenis ‘nativeVersion’, nilai harus berupa nomor versi Untuk jenis ‘kill’, nilai tidak digunakan Fungsi ini memiliki perilaku yang tidak konsisten, opsi kill memicu pembaruan setelah kill pertama dan tidak setelah background berikutnya seperti opsi lainnya. Ini akan diperbaiki dalam rilis utama mendatang

ParamTypeDescription
optionsMultiDelayConditionsBerisi array {@link MultiDelayConditions} kondisi yang akan diatur

Since: 430


cancelDelay()

cancelDelay() => Promise<void>

Membatalkan {@link DelayCondition} untuk memproses pembaruan segera

Since: 400


getLatest()

getLatest(options?: GetLatestOptions | undefined) => Promise<LatestVersion>

Dapatkan bundle terbaru yang tersedia dari URL pembaruan

ParamType
optionsGetLatestOptions

Returns: Promise<LatestVersion>

Since: 400


setChannel()

setChannel(options: SetChannelOptions) => Promise<ChannelRes>

Mengatur channel untuk perangkat ini. Channel harus mengizinkan pengaturan sendiri agar ini berfungsi Jangan gunakan metode ini untuk mengatur channel saat boot ketika ‘autoUpdate’ diaktifkan di {@link PluginsConfig} Metode ini untuk mengatur channel setelah aplikasi siap Metode ini mengirim permintaan ke backend Capgo untuk menghubungkan ID perangkat ke channel. Capgo dapat menerima atau menolak tergantung pengaturan channel Anda

ParamTypeDescription
optionsSetChannelOptionsAdalah {@link SetChannelOptions} channel yang akan diatur

Returns: Promise<ChannelRes>

Since: 470


unsetChannel()

unsetChannel(options: UnsetChannelOptions) => Promise<void>

Menghapus pengaturan channel untuk perangkat iniPerangkat akan kembali ke channel default

ParamType
optionsUnsetChannelOptions

Since: 470


getChannel()

getChannel() => Promise<GetChannelRes>

Dapatkan channel untuk perangkat ini

Returns: Promise<GetChannelRes>

Since: 480


setCustomId()

setCustomId(options: SetCustomIdOptions) => Promise<void>

Atur ID kustom untuk perangkat ini

ParamTypeDescription
optionsSetCustomIdOptionsadalah {@link SetCustomIdOptions} customId untuk diatur

Since: 490


getBuiltinVersion()

getBuiltinVersion() => Promise<BuiltinVersion>

Dapatkan versi aplikasi native atau versi builtin jika diatur dalam konfigurasi

Returns: Promise<BuiltinVersion>

Since: 520


getDeviceId()

getDeviceId() => Promise<DeviceId>

Dapatkan ID unik yang digunakan untuk mengidentifikasi perangkat (dikirim ke server pembaruan otomatis)

Returns: Promise<DeviceId>


getPluginVersion()

getPluginVersion() => Promise<PluginVersion>

Dapatkan versi plugin Capacitor Updater native (dikirim ke server pembaruan otomatis)

Returns: Promise<PluginVersion>


isAutoUpdateEnabled()

isAutoUpdateEnabled() => Promise<AutoUpdateEnabled>

Dapatkan status konfigurasi pembaruan otomatis

Returns: Promise<AutoUpdateEnabled>


removeAllListeners()

removeAllListeners() => Promise<void>

Hapus semua listener untuk plugin ini

Since: 100


addListener(‘download’, )

addListener(eventName: 'download', listenerFunc: (state: DownloadEvent) => void) => Promise<PluginListenerHandle>

Mendengarkan event pengunduhan bundle dalam Aplikasi. Aktif saat pengunduhan dimulai, selama mengunduh dan saat selesai

ParamType
eventName’download’
listenerFunc(state: DownloadEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 2011


addListener(‘noNeedUpdate’, )

addListener(eventName: 'noNeedUpdate', listenerFunc: (state: NoNeedEvent) => void) => Promise<PluginListenerHandle>

Mendengarkan event tidak perlu pembaruan, berguna ketika Anda ingin memaksa pemeriksaan setiap kali aplikasi diluncurkan

ParamType
eventName’noNeedUpdate’
listenerFunc(state: NoNeedEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 400


addListener(‘updateAvailable’, )

addListener(eventName: 'updateAvailable', listenerFunc: (state: UpdateAvailableEvent) => void) => Promise<PluginListenerHandle>

Mendengarkan event pembaruan tersedia, berguna ketika Anda ingin memaksa pemeriksaan setiap kali aplikasi diluncurkan

ParamType
eventName’updateAvailable’
listenerFunc(state: UpdateAvailableEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 400


addListener(‘downloadComplete’, )

addListener(eventName: 'downloadComplete', listenerFunc: (state: DownloadCompleteEvent) => void) => Promise<PluginListenerHandle>

Mendengarkan event downloadComplete

ParamType
eventName’downloadComplete’
listenerFunc(state: DownloadCompleteEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 400


addListener(‘majorAvailable’, )

addListener(eventName: 'majorAvailable', listenerFunc: (state: MajorAvailableEvent) => void) => Promise<PluginListenerHandle>

Mendengarkan event pembaruan Major dalam Aplikasi, memberi tahu Anda ketika pembaruan major diblokir oleh pengaturan disableAutoUpdateBreaking

ParamType
eventName’majorAvailable’
listenerFunc(state: MajorAvailableEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 230


addListener(‘updateFailed’, )

addListener(eventName: 'updateFailed', listenerFunc: (state: UpdateFailedEvent) => void) => Promise<PluginListenerHandle>

Mendengarkan event kegagalan pembaruan dalam Aplikasi, memberi tahu Anda ketika pembaruan gagal diinstal saat aplikasi berikutnya dimulai

ParamType
eventName’updateFailed’
listenerFunc(state: UpdateFailedEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 230


addListener(‘downloadFailed’,)

addListener(eventName: 'downloadFailed', listenerFunc: (state: DownloadFailedEvent) => void) => Promise<PluginListenerHandle>

Dengarkan event kegagalan unduhan di App, memberi tahu Anda ketika unduhan bundle gagal

ParamType
eventName’downloadFailed’
listenerFunc(state: DownloadFailedEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 400


addListener(‘appReloaded’, )

addListener(eventName: 'appReloaded', listenerFunc: () => void) => Promise<PluginListenerHandle>

Dengarkan event reload di App, memberi tahu Anda ketika reload terjadi

ParamType
eventName’appReloaded’
listenerFunc() => void

Returns: Promise<PluginListenerHandle>

Since: 430


addListener(‘appReady’, )

addListener(eventName: 'appReady', listenerFunc: (state: AppReadyEvent) => void) => Promise<PluginListenerHandle>

Dengarkan event app ready di App, memberi tahu Anda ketika app siap digunakan

ParamType
eventName’appReady’
listenerFunc(state: AppReadyEvent) => void

Returns: Promise<PluginListenerHandle>

Since: 510


isAutoUpdateAvailable()

isAutoUpdateAvailable() => Promise<AutoUpdateAvailable>

Dapatkan apakah pembaruan otomatis tersedia (tidak dinonaktifkan oleh serverUrl)

Returns: Promise<AutoUpdateAvailable>


getNextBundle()

getNextBundle() => Promise<BundleInfo | null>

Dapatkan bundle selanjutnya yang akan digunakan ketika aplikasi dimuat ulang Mengembalikan null jika tidak ada bundle selanjutnya yang diatur

Returns: Promise<BundleInfo | null>

Since: 680


Interfaces

AppReadyResult

PropType
bundleBundleInfo

BundleInfo

PropType
idstring
versionstring
downloadedstring
checksumstring
statusBundleStatus

UpdateUrl

PropType
urlstring

StatsUrl

PropType
urlstring

ChannelUrl

PropType
urlstring

DownloadOptions

PropTypeDeskripsiDefaultSince
urlstringURL file zip bundle (misalnya: distzip) yang akan diunduh (Ini bisa berupa URL apa saja Misalnya: Amazon S3, tag GitHub, tempat lain dimana Anda meng-host bundle Anda)
versionstringKode/nama versi dari bundle/versi ini
sessionKeystringKunci sesi untuk pembaruanundefined400
checksumstringChecksum untuk pembaruanundefined400

BundleId

PropType
idstring

BundleListResult

PropType
bundlesBundleInfo[]

ListOptions

PropTypeDeskripsiDefaultSince
rawbooleanApakah akan mengembalikan daftar bundle mentah atau manifest Jika benar, daftar akan mencoba membaca database internal alih-alih file di diskfalse6140

ResetOptions

PropType
toLastSuccessfulboolean

CurrentBundleResult

PropType
bundleBundleInfo
nativestring

MultiDelayConditions

PropType
delayConditionsDelayCondition[]

DelayCondition

PropTypeDeskripsi
kindDelayUntilNextAtur kondisi delay di setMultiDelay
valuestring

LatestVersion

PropTypeDeskripsiSince
versionstringHasil dari metode getLatest400
checksumstring6
majorboolean
messagestring
sessionKeystring
errorstring
oldstring
urlstring
manifestManifestEntry[]61

ManifestEntry

PropType
file_namestring | null
file_hashstring | null
download_urlstring | null

GetLatestOptions

PropTypeDeskripsiDefaultSejak
channelstringChannel untuk mendapatkan versi terbaru. Channel harus mengizinkan ‘self_assign’ agar ini berfungsiundefined680

ChannelRes

PropTypeDeskripsiSejak
statusstringStatus saat ini dari channel yang diatur470
errorstring
messagestring

SetChannelOptions

PropType
channelstring
triggerAutoUpdateboolean

UnsetChannelOptions

PropType
triggerAutoUpdateboolean

GetChannelRes

PropTypeDeskripsiSejak
channelstringStatus saat ini dari channel yang didapat480
errorstring
messagestring
statusstring
allowSetboolean

SetCustomIdOptions

PropType
customIdstring

BuiltinVersion

PropType
versionstring

DeviceId

PropType
deviceIdstring

PluginVersion

PropType
versionstring

AutoUpdateEnabled

PropType
enabledboolean

PluginListenerHandle

PropType
remove() => Promise<void>

DownloadEvent

PropTypeDeskripsiSejak
percentnumberStatus unduhan saat ini, antara 0 dan 100400
bundleBundleInfo

NoNeedEvent

PropTypeDeskripsiSejak
bundleBundleInfoStatus unduhan saat ini, antara 0 dan 100400

UpdateAvailableEvent

PropTypeDeskripsiSejak
bundleBundleInfoStatus unduhan saat ini, antara 0 dan 100400

DownloadCompleteEvent

PropTypeDeskripsiSejak
bundleBundleInfoMuncul ketika pembaruan baru tersedia400

MajorAvailableEvent

PropTypeDeskripsiSejak
versionstringMuncul ketika bundle major baru tersedia400

UpdateFailedEvent

PropTypeDeskripsiSejak
bundleBundleInfoMuncul ketika pembaruan gagal diinstal400

DownloadFailedEvent

PropTypeDeskripsiSejak
versionstringMuncul ketika unduhan gagal400

AppReadyEvent

PropTypeDeskripsiSejak
bundleBundleInfoMuncul ketika aplikasi siap digunakan520
statusstring

AutoUpdateAvailable

PropType
availableboolean

Type Aliases

BundleStatus

‘success’ | ‘error’ | ‘pending’ | ‘downloading’

DelayUntilNext

‘background’ | ‘kill’ | ‘nativeVersion’ | ‘date’