Vai al contenuto

Funzioni e impostazioni

Configurazione del Plugin Updater

Consulta Readme su Github per maggiori informazioni

CapacitorUpdater può essere configurato con queste opzioni:

ProprietàTipoDescrizionePredefinitoDa
appReadyTimeoutnumberConfigura il numero di millisecondi che il plugin nativo deve attendere prima di considerare un aggiornamento ‘fallito’. Disponibile solo per Android e iOS10000 // (10 secondi)
responseTimeoutnumberConfigura il numero di millisecondi che il plugin nativo deve attendere prima di considerare timeout l’API. Disponibile solo per Android e iOS20 // (20 secondi)
autoDeleteFailedbooleanConfigura se il plugin deve eliminare automaticamente i bundle falliti. Disponibile solo per Android e iOStrue
autoDeletePreviousbooleanConfigura se il plugin deve eliminare automaticamente i bundle precedenti dopo un aggiornamento riuscito. Disponibile solo per Android e iOStrue
autoUpdatebooleanConfigura se il plugin deve utilizzare l’aggiornamento automatico tramite un server di aggiornamento. Disponibile solo per Android e iOStrue
resetWhenUpdatebooleanElimina automaticamente i bundle scaricati in precedenza quando viene installata una nuova versione nativa dell’app sul dispositivo. Disponibile solo per Android e iOStrue
updateUrlstringConfigura l’URL/endpoint a cui vengono inviati i controlli di aggiornamento. Disponibile solo per Android e iOShttps://plugincapgoapp/updates
channelUrlstringConfigura l’URL/endpoint per le operazioni sui canali. Disponibile solo per Android e iOShttps://plugincapgoapp/channel_self
statsUrlstringConfigura l’URL/endpoint a cui vengono inviate le statistiche di aggiornamento. Disponibile solo per Android e iOS. Impostare a "" per disabilitare la segnalazione delle statistichehttps://plugincapgoapp/stats
privateKeystringConfigura la chiave privata per la crittografia end-to-end degli aggiornamenti live. Disponibile solo per Android e iOS. Deprecato nella versione 620, sarà rimosso nella versione 700undefined
publicKeystringConfigura la chiave pubblica per la crittografia end-to-end degli aggiornamenti live Versione 2. Disponibile solo per Android e iOSundefined620
versionstringConfigura la versione corrente dell’app. Verrà utilizzata per la prima richiesta di aggiornamento. Se non impostata, il plugin otterrà la versione dal codice nativo. Solo Android e iOSundefined41748
directUpdatebooleanFa sì che il plugin installi direttamente l’aggiornamento quando l’app è stata appena aggiornata/installata. Solo per modalità autoUpdate. Disponibile solo per Android e iOSundefined510
periodCheckDelaynumberConfigura il periodo di ritardo per il controllo periodico degli aggiornamenti in secondi. Disponibile solo per Android e iOS. Non può essere inferiore a 600 secondi (10 minuti)600 // (10 minuti)
localS3booleanConfigura la CLI per utilizzare un server locale per test o server di aggiornamento self-hostedundefined41748
localHoststringConfigura la CLI per utilizzare un server locale per test o server di aggiornamento self-hostedundefined41748
localWebHoststringConfigura la CLI per utilizzare un server locale per test o server di aggiornamento self-hostedundefined41748
localSupastringConfigura la CLI per utilizzare un server locale per test o server di aggiornamento self-hostedundefined41748
localSupaAnonstringConfigura la CLI per utilizzare un server locale per testundefined41748
localApistringConfigura la CLI per utilizzare un’API locale per testundefined633
localApiFilesstringConfigura la CLI per utilizzare un’API di file locale per testundefined633
allowModifyUrlbooleanPermette al plugin di modificare dinamicamente updateUrl, statsUrl e channelUrl dal lato JavaScriptfalse540
defaultChannelstringImposta il canale predefinito per l’app nella configurazioneEcco la traduzione in italiano:
| <code>undefined</code> | 550 |

| appId | string | Configura l’id dell’app per l’app nella configurazione | undefined | 600 | | keepUrlPathAfterReload | boolean | Configura il plugin per mantenere il percorso URL dopo un ricaricamento ATTENZIONE: Quando viene attivato un ricaricamento, la ‘windowhistory’ verrà cancellata | false | 680 |

Esempi

In capacitorconfigjson:

{
"plugins": {
"CapacitorUpdater": {
"appReadyTimeout": 1000 // (1 secondo),
"responseTimeout": 10 // (10 secondi),
"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
}
}
}

In capacitorconfigts:

/// <reference types="@capgo/capacitor-updater" />
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
appReadyTimeout: 1000 // (1 secondo),
responseTimeout: 10 // (10 secondi),
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;

Metodi

notifyAppReady()

notifyAppReady() => Promise<AppReadyResult>

Notifica a Capacitor Updater che il bundle corrente sta funzionando (verrà eseguito un rollback se questo metodo non viene chiamato ad ogni avvio dell’app) Per impostazione predefinita questo metodo dovrebbe essere chiamato nei primi 10 secondi dopo l’avvio dell’app, altrimenti verrà eseguito un rollback Modifica questo comportamento con {@link appReadyTimeout}

Ritorna: Promise<AppReadyResult>


setUpdateUrl()

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

Imposta l’updateUrl per l’app, questo sarà utilizzato per controllare gli aggiornamenti

ParamTypeDescrizione
optionsUpdateUrlcontiene l’URL da utilizzare per controllare gli aggiornamenti

Dal: 540


setStatsUrl()

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

Imposta la statsUrl per l’app, questa verrà utilizzata per inviare statistiche. L’inserimento di una stringa vuota disabiliterà la raccolta delle statistiche.

ParamTypeDescrizione
optionsStatsUrlcontiene l’URL da utilizzare per inviare statistiche

Dal: 540


setChannelUrl()

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

Imposta la channelUrl per l’app, questa verrà utilizzata per impostare il canale

ParamTypeDescrizione
optionsChannelUrlcontiene l’URL da utilizzare per impostare il canale

Dal: 540


download()

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

Scarica un nuovo bundle dall’URL fornito, dovrebbe essere un file zip, con file al suo interno o con un ID unico al suo interno con tutti i tuoi file

ParamTypeDescrizione
optionsDownloadOptionsLe {@link DownloadOptions} per scaricare un nuovo bundle zip

Ritorna: Promise<BundleInfo>


next()

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

Imposta il prossimo bundle da utilizzare quando l’app viene ricaricata| Param | Type | Description | | ------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | options | BundleId | Contiene l’ID del prossimo Bundle da impostare al prossimo avvio dell’app {@link BundleInfoid} |

Returns: Promise<BundleInfo>


set()

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

Imposta il bundle corrente e riavvia immediatamente l’app

ParamTypeDescription
optionsBundleIdUn oggetto {@link BundleId} contenente il nuovo bundle id da impostare come corrente

delete()

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

Elimina il bundle specificato dalla memoria dell’app nativa. Usa con {@link list} per ottenere gli ID dei Bundle memorizzati

ParamTypeDescription
optionsBundleIdUn oggetto {@link BundleId} contenente l’ID di un bundle da eliminare (nota, questo è l’id del bundle, NON il nome della versione)

list()

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

Ottieni tutti i bundle scaricati localmente nella tua app

ParamTypeDescription
optionsListOptionsLe {@link ListOptions} per elencare i bundle

Returns: Promise<BundleListResult>


reset()

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

Ripristina l’app al bundle ‘builtin’ (quello inviato all’Apple App Store / Google Play Store) o all’ultimo bundle caricato con successo

ParamTypeDescription
optionsResetOptionsContenente {@link ResetOptionstoLastSuccessful}, true ripristina al bundle builtin e false ripristinerà all’ultimo bundle caricato con successo

current()

current() => Promise<CurrentBundleResult>

Ottieni il bundle corrente, se nessuno è impostato restituisce builtin currentNative è il bundle originale installato sul dispositivo

Returns: Promise<CurrentBundleResult>


reload()

reload() => Promise<void>

Ricarica la vista


setMultiDelay()

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

Imposta un array {@link DelayCondition} contenente le condizioni che il Plugin utilizzerà per ritardare l’aggiornamento Dopo che tutte le condizioni sono soddisfatte, il processo di aggiornamento ripartirà come al solito, quindi l’aggiornamento verrà installato dopo un background o l’uccisione dell’app Per il tipo ‘date’, il valore deve essere una stringa di data iso8601 Per il tipo ‘background’, il valore deve essere un numero in millisecondi Per il tipo ‘nativeVersion’, il valore deve essere il numero di versione Per il tipo ‘kill’, il valore non viene utilizzato La funzione ha un comportamento non coerente l’opzione kill fa scattare l’aggiornamento dopo il primo kill e non dopo il prossimo background come altre opzioni. Questo sarà corretto in una futura release maggiore

ParamTypeDescription
optionsMultiDelayConditionsContenente l’array {@link MultiDelayConditions} di condizioni da impostare

Since: 430


cancelDelay()

cancelDelay() => Promise<void>

Annulla un {@link DelayCondition} per elaborare immediatamente un aggiornamento

Since: 400


getLatest()

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

Ottieni l’ultimo bundle disponibile dall’URL di aggiornamento

ParamType
optionsGetLatestOptions

Returns: Promise<LatestVersion>

Since: 400


setChannel()

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

Imposta il canale per questo dispositivo. Il canale deve consentire l’auto-assegnazione perché questo funzioni Non utilizzare questo metodo per impostare il canale all’avvio quando autoUpdate è abilitato nella {@link PluginsConfig} Questo metodo serve per impostare il canale dopo che l’app è pronta Questo metodo invia al backend di Capgo una richiesta per collegare l’ID del dispositivo al canale. Capgo può accettare o rifiutare a seconda delle impostazioni del tuo canale

ParamTypeDescription
optionsSetChannelOptionsÈ il canale {@link SetChannelOptions} da impostare

Returns: Promise<ChannelRes>

Since: 470


unsetChannel()

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

Rimuove l’impostazione del canale per questo dispositivoIl dispositivo tornerà quindi al canale predefinito

ParamTipo
optionsUnsetChannelOptions

Da: 470


getChannel()

getChannel() => Promise<GetChannelRes>

Ottieni il canale per questo dispositivo

Ritorna: Promise<GetChannelRes>

Da: 480


setCustomId()

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

Imposta un ID personalizzato per questo dispositivo

ParamTipoDescrizione
optionsSetCustomIdOptionsè il {@link SetCustomIdOptions} customId da impostare

Da: 490


getBuiltinVersion()

getBuiltinVersion() => Promise<BuiltinVersion>

Ottieni la versione nativa dell’app o la versione integrata se impostata nella configurazione

Ritorna: Promise<BuiltinVersion>

Da: 520


getDeviceId()

getDeviceId() => Promise<DeviceId>

Ottieni ID univoco utilizzato per identificare il dispositivo (inviato al server di aggiornamento automatico)

Ritorna: Promise<DeviceId>


getPluginVersion()

getPluginVersion() => Promise<PluginVersion>

Ottieni la versione nativa del plugin Capacitor Updater (inviata al server di aggiornamento automatico)

Ritorna: Promise<PluginVersion>


isAutoUpdateEnabled()

isAutoUpdateEnabled() => Promise<AutoUpdateEnabled>

Ottieni lo stato della configurazione di aggiornamento automatico

Ritorna: Promise<AutoUpdateEnabled>


removeAllListeners()

removeAllListeners() => Promise<void>

Rimuovi tutti i listener per questo plugin

Da: 100


addListener(‘download’, )

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

Ascolta l’evento di download del bundle nell’App Si attiva quando inizia un download, durante il download e al termine

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

Ritorna: Promise<PluginListenerHandle>

Da: 2011


addListener(‘noNeedUpdate’, )

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

Ascolta l’evento nessun aggiornamento necessario, utile quando vuoi forzare il controllo ogni volta che l’app viene avviata

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

Ritorna: Promise<PluginListenerHandle>

Da: 400


addListener(‘updateAvailable’, )

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

Ascolta l’evento aggiornamento disponibile, utile quando vuoi forzare il controllo ogni volta che l’app viene avviata

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

Ritorna: Promise<PluginListenerHandle>

Da: 400


addListener(‘downloadComplete’, )

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

Ascolta gli eventi downloadComplete

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

Ritorna: Promise<PluginListenerHandle>

Da: 400


addListener(‘majorAvailable’, )

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

Ascolta l’evento di aggiornamento Major nell’App, ti fa sapere quando l’aggiornamento major è bloccato dall’impostazione disableAutoUpdateBreaking

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

Ritorna: Promise<PluginListenerHandle>

Da: 230


addListener(‘updateFailed’, )

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

Ascolta l’evento di fallimento dell’aggiornamento nell’App, ti fa sapere quando l’aggiornamento non è riuscito a installarsi al prossimo avvio dell’app

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

Ritorna: Promise<PluginListenerHandle>

Da: 230


addListener(‘downloadFailed’,)

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

Ascolta l’evento di fallimento del download nell’App, ti informa quando il download di un bundle è fallito

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

Returns: Promise<PluginListenerHandle>

Since: 400


addListener(‘appReloaded’, )

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

Ascolta l’evento di ricaricamento nell’App, ti informa quando è avvenuto il ricaricamento

ParamType
eventName’appReloaded’
listenerFunc() => void

Returns: Promise<PluginListenerHandle>

Since: 430


addListener(‘appReady’, )

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

Ascolta l’evento di app pronta nell’App, ti informa quando l’app è pronta all’uso

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

Returns: Promise<PluginListenerHandle>

Since: 510


isAutoUpdateAvailable()

isAutoUpdateAvailable() => Promise<AutoUpdateAvailable>

Verifica se l’aggiornamento automatico è disponibile (non disabilitato da serverUrl)

Returns: Promise<AutoUpdateAvailable>


getNextBundle()

getNextBundle() => Promise<BundleInfo | null>

Ottieni il prossimo bundle che verrà utilizzato quando l’app si ricaricherà Restituisce null se non è impostato alcun bundle successivo

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

PropTypeDescriptionDefaultSince
urlstringL’URL del file zip del bundle (es: distzip) da scaricare (Può essere qualsiasi URL Es: Amazon S3, un tag GitHub, qualsiasi altro posto dove hai ospitato il tuo bundle)
versionstringIl codice/nome versione di questo bundle/versione
sessionKeystringLa chiave di sessione per l’aggiornamentoundefined400
checksumstringIl checksum per l’aggiornamentoundefined400

BundleId

PropType
idstring

BundleListResult

PropType
bundlesBundleInfo[]

ListOptions

PropTypeDescriptionDefaultSince
rawbooleanSe restituire la lista dei bundle grezza o il manifest Se true, la lista tenterà di leggere il database interno invece dei file su discofalse6140

ResetOptions

PropType
toLastSuccessfulboolean

CurrentBundleResult

PropType
bundleBundleInfo
nativestring

MultiDelayConditions

PropType
delayConditionsDelayCondition[]

DelayCondition

PropTypeDescription
kindDelayUntilNextImposta le condizioni di ritardo in setMultiDelay
valuestring

LatestVersion

PropTypeDescriptionSince
versionstringRisultato del metodo getLatest40
checksumstring6
majorboolean
messagestring
sessionKeystring
errorstring
oldstring
urlstring
manifestManifestEntry[]61

ManifestEntry

ProprietàTipo
file_namestring | null
file_hashstring | null
download_urlstring | null

GetLatestOptions

ProprietàTipoDescrizionePredefinitoDa
channelstringIl canale per ottenere l’ultima versione. Il canale deve consentire ‘self_assign’ affinché funzioniundefined680

ChannelRes

ProprietàTipoDescrizioneDa
statusstringStato attuale del canale impostato470
errorstring
messagestring

SetChannelOptions

ProprietàTipo
channelstring
triggerAutoUpdateboolean

UnsetChannelOptions

ProprietàTipo
triggerAutoUpdateboolean

GetChannelRes

ProprietàTipoDescrizioneDa
channelstringStato attuale del canale ottenuto480
errorstring
messagestring
statusstring
allowSetboolean

SetCustomIdOptions

ProprietàTipo
customIdstring

BuiltinVersion

ProprietàTipo
versionstring

DeviceId

ProprietàTipo
deviceIdstring

PluginVersion

ProprietàTipo
versionstring

AutoUpdateEnabled

ProprietàTipo
enabledboolean

PluginListenerHandle

ProprietàTipo
remove() => Promise<void>

DownloadEvent

ProprietàTipoDescrizioneDa
percentnumberStato attuale del download, tra 0 e 100400
bundleBundleInfo

NoNeedEvent

ProprietàTipoDescrizioneDa
bundleBundleInfoStato attuale del download, tra 0 e 100400

UpdateAvailableEvent

ProprietàTipoDescrizioneDa
bundleBundleInfoStato attuale del download, tra 0 e 100400

DownloadCompleteEvent

ProprietàTipoDescrizioneDa
bundleBundleInfoEmesso quando è disponibile un nuovo aggiornamento400

MajorAvailableEvent

ProprietàTipoDescrizioneDa
versionstringEmesso quando è disponibile un nuovo bundle maggiore400

UpdateFailedEvent

ProprietàTipoDescrizioneDa
bundleBundleInfoEmesso quando un aggiornamento non riesce a installarsi400

DownloadFailedEvent

ProprietàTipoDescrizioneDa
versionstringEmesso quando un download fallisce400

AppReadyEvent

ProprietàTipoDescrizioneDa
bundleBundleInfoEmesso quando l’app è pronta per l’uso520
statusstring

AutoUpdateAvailable

ProprietàTipo
availableboolean

Type Aliases

BundleStatus

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

DelayUntilNext

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