Funzioni e impostazioni
Configuración del Plugin Updater
Consulta el Readme de Github para más información
CapacitorUpdater puede configurarse con estas opciones:
Propiedad | Tipo | Descripción | Valor predeterminado | Desde |
---|---|---|---|---|
appReadyTimeout | number | Configura el número de milisegundos que el plugin nativo debe esperar antes de considerar una actualización como ‘fallida’. Solo disponible para Android e iOS | 10000 // (10 segundos) | |
responseTimeout | number | Configura el número de milisegundos que el plugin nativo debe esperar antes de considerar un tiempo de espera de la API. Solo disponible para Android e iOS | 20 // (20 segundos) | |
autoDeleteFailed | boolean | Configura si el plugin debe eliminar automáticamente los paquetes fallidos. Solo disponible para Android e iOS | true | |
autoDeletePrevious | boolean | Configura si el plugin debe eliminar automáticamente los paquetes anteriores después de una actualización exitosa. Solo disponible para Android e iOS | true | |
autoUpdate | boolean | Configura si el plugin debe usar actualización automática a través de un servidor de actualizaciones. Solo disponible para Android e iOS | true | |
resetWhenUpdate | boolean | Elimina automáticamente los paquetes descargados anteriormente cuando se instala un nuevo paquete nativo en el dispositivo. Solo disponible para Android e iOS | true | |
updateUrl | string | Configura la URL / punto final al que se envían las comprobaciones de actualización. Solo disponible para Android e iOS | https://plugincapgoapp/updates | |
channelUrl | string | Configura la URL / punto final para operaciones de canal. Solo disponible para Android e iOS | https://plugincapgoapp/channel_self | |
statsUrl | string | Configura la URL / punto final al que se envían las estadísticas de actualización. Solo disponible para Android e iOS. Establecer como "" para deshabilitar el reporte de estadísticas | https://plugincapgoapp/stats | |
privateKey | string | Configura la clave privada para el cifrado de actualizaciones en vivo de extremo a extremo. Solo disponible para Android e iOS. Obsoleto en la versión 620, será eliminado en la versión 700 | undefined | |
publicKey | string | Configura la clave pública para el cifrado de actualizaciones en vivo de extremo a extremo Versión 2. Solo disponible para Android e iOS | undefined | 620 |
version | string | Configura la versión actual de la aplicación. Se usará para la primera solicitud de actualización. Si no se establece, el plugin obtendrá la versión del código nativo. Solo para Android e iOS | undefined | 41748 |
directUpdate | boolean | Hace que el plugin instale directamente la actualización cuando la aplicación se acaba de actualizar/instalar. Solo para modo autoUpdate. Solo disponible para Android e iOS | undefined | 510 |
periodCheckDelay | number | Configura el período de retraso para la comprobación periódica de actualizaciones en segundos. Solo disponible para Android e iOS. No puede ser menor a 600 segundos (10 minutos) | 600 // (10 minutos) | |
localS3 | boolean | Configura el CLI para usar un servidor local para pruebas o servidor de actualizaciones autohospedado | undefined | 41748 |
localHost | string | Configura el CLI para usar un servidor local para pruebas o servidor de actualizaciones autohospedado | undefined | 41748 |
localWebHost | string | Configura el CLI para usar un servidor local para pruebas o servidor de actualizaciones autohospedado | undefined | 41748 |
localSupa | string | Configura el CLI para usar un servidor local para pruebas o servidor de actualizaciones autohospedado | undefined | 41748 |
localSupaAnon | string | Configura el CLI para usar un servidor local para pruebas | undefined | 41748 |
localApi | string | Configura el CLI para usar una API local para pruebas | undefined | 633 |
localApiFiles | string | Configura el CLI para usar una API de archivos local para pruebas | undefined | 633 |
allowModifyUrl | boolean | Permite que el plugin modifique updateUrl, statsUrl y channelUrl dinámicamente desde el lado JavaScript | false | 540 |
defaultChannel | string | Establece el canal predeterminado para la aplicación en la configuraciónTraducción al español: |
| <code>undefined</code> | 550 |
| appId
| string
| Configura el id de la aplicación en la configuración | undefined
| 600 |
| keepUrlPathAfterReload
| boolean
| Configura el plugin para mantener la ruta URL después de una recarga ADVERTENCIA: Cuando se activa una recarga, ‘windowhistory’ se borrará | false
| 680 |
Ejemplos
En capacitorconfigjson
:
{ "plugins": { "CapacitorUpdater": { "appReadyTimeout": 1000 // (1 segundo), "responseTimeout": 10 // (10 segundos), "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 } }}
En capacitorconfigts
:
/// <reference types="@capgo/capacitor-updater" />
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { appReadyTimeout: 1000 // (1 segundo), responseTimeout: 10 // (10 segundos), 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;
notifyAppReady()
setUpdateUrl()
setStatsUrl()
setChannelUrl()
download()
next()
set()
delete()
list()
reset()
current()
reload()
setMultiDelay()
cancelDelay()
getLatest()
setChannel()
unsetChannel()
getChannel()
setCustomId()
getBuiltinVersion()
getDeviceId()
getPluginVersion()
isAutoUpdateEnabled()
removeAllListeners()
addListener('download', )
addListener('noNeedUpdate', )
addListener('updateAvailable', )
addListener('downloadComplete', )
addListener('majorAvailable', )
addListener('updateFailed', )
addListener('downloadFailed', )
addListener('appReloaded', )
addListener('appReady', )
isAutoUpdateAvailable()
getNextBundle()
- Interfaces
- Type Aliases
Métodos
notifyAppReady()
notifyAppReady() => Promise<AppReadyResult>
Notifica a Capacitor Updater que el paquete actual está funcionando (se producirá un rollback si este método no se llama en cada inicio de la aplicación) Por defecto, este método debe llamarse en los primeros 10 segundos después del inicio de la aplicación, de lo contrario se producirá un rollback Cambia este comportamiento con {@link appReadyTimeout}
Devuelve: Promise<AppReadyResult>
setUpdateUrl()
setUpdateUrl(options: UpdateUrl) => Promise<void>
Establece la updateUrl para la aplicación, esta se usará para buscar actualizaciones
Param | Type | Descripción |
---|---|---|
options | UpdateUrl | contiene la URL a usar para buscar actualizaciones |
Desde: 540
setStatsUrl()
setStatsUrl(options: StatsUrl) => Promise<void>
Establece la statsUrl para la aplicación, esta se usará para enviar estadísticas. Pasar una cadena vacía deshabilitará la recopilación de estadísticas
Param | Type | Descripción |
---|---|---|
options | StatsUrl | contiene la URL a usar para enviar estadísticas |
Desde: 540
setChannelUrl()
setChannelUrl(options: ChannelUrl) => Promise<void>
Establece la channelUrl para la aplicación, esta se usará para establecer el canal
Param | Type | Descripción |
---|---|---|
options | ChannelUrl | contiene la URL a usar para establecer el canal |
Desde: 540
download()
download(options: DownloadOptions) => Promise<BundleInfo>
Descarga un nuevo paquete desde la URL proporcionada, debe ser un archivo zip, con archivos dentro o con un id único dentro con todos tus archivos
Param | Type | Descripción |
---|---|---|
options | DownloadOptions | Las {@link DownloadOptions} para descargar un nuevo zip de paquete |
Devuelve: Promise<BundleInfo>
next()
next(options: BundleId) => Promise<BundleInfo>
Establece el siguiente paquete que se usará cuando la aplicación sea recargada| Param | Type | Description |
| ------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| options
| BundleId
| Contiene el ID del siguiente Bundle a establecer en el próximo inicio de la aplicación {@link BundleInfoid} |
Returns: Promise<BundleInfo>
set()
set(options: BundleId) => Promise<void>
Establece el bundle actual e inmediatamente recarga la aplicación
Param | Type | Description |
---|---|---|
options | BundleId | Un objeto {@link BundleId} que contiene el nuevo ID de bundle a establecer como actual |
delete()
delete(options: BundleId) => Promise<void>
Elimina el bundle especificado del almacenamiento nativo de la aplicación. Use con {@link list} para obtener los IDs de Bundle almacenados
Param | Type | Description |
---|---|---|
options | BundleId | Un objeto {@link BundleId} que contiene el ID del bundle a eliminar (nota, este es el ID del bundle, NO el nombre de la versión) |
list()
list(options?: ListOptions | undefined) => Promise<BundleListResult>
Obtiene todos los bundles descargados localmente en tu aplicación
Param | Type | Description |
---|---|---|
options | ListOptions | Las {@link ListOptions} para listar bundles |
Returns: Promise<BundleListResult>
reset()
reset(options?: ResetOptions | undefined) => Promise<void>
Restablece la aplicación al bundle builtin
(el enviado a Apple App Store / Google Play Store) o al último bundle cargado exitosamente
Param | Type | Description |
---|---|---|
options | ResetOptions | Contiene {@link ResetOptionstoLastSuccessful}, true restablece al bundle incorporado y false restablecerá al último bundle cargado exitosamente |
current()
current() => Promise<CurrentBundleResult>
Obtiene el bundle actual, si no hay ninguno establecido retorna builtin
. currentNative es el bundle original instalado en el dispositivo
Returns: Promise<CurrentBundleResult>
reload()
reload() => Promise<void>
Recarga la vista
setMultiDelay()
setMultiDelay(options: MultiDelayConditions) => Promise<void>
Establece un array {@link DelayCondition} que contiene condiciones que el Plugin usará para retrasar la actualización
Después de que todas las condiciones se cumplan, el proceso de actualización comenzará nuevamente como de costumbre, por lo que la actualización se instalará después de poner en segundo plano o matar la aplicación
Para el tipo date
, el valor debe ser una cadena de fecha iso8601
Para el tipo background
, el valor debe ser un número en milisegundos
Para el tipo nativeVersion
, el valor debe ser el número de versión
Para el tipo kill
, el valor no se utiliza
La función tiene un comportamiento inconsistente; la opción kill activa la actualización después del primer cierre y no después del siguiente segundo plano como otras opciones. Esto se corregirá en una versión mayor futura
Param | Type | Description |
---|---|---|
options | MultiDelayConditions | Contiene el array {@link MultiDelayConditions} de condiciones a establecer |
Since: 430
cancelDelay()
cancelDelay() => Promise<void>
Cancela una {@link DelayCondition} para procesar una actualización inmediatamente
Since: 400
getLatest()
getLatest(options?: GetLatestOptions | undefined) => Promise<LatestVersion>
Obtiene el último bundle disponible desde la URL de actualización
Param | Type |
---|---|
options | GetLatestOptions |
Returns: Promise<LatestVersion>
Since: 400
setChannel()
setChannel(options: SetChannelOptions) => Promise<ChannelRes>
Establece el canal para este dispositivo. El canal debe permitir la autoasignación para que esto funcione
No use este método para establecer el canal al inicio cuando autoUpdate
está habilitado en la {@link PluginsConfig}
Este método es para establecer el canal después de que la aplicación esté lista
Este método envía al backend de Capgo una solicitud para vincular el ID del dispositivo al canal. Capgo puede aceptar o rechazar dependiendo de la configuración de tu canal
Param | Type | Description |
---|---|---|
options | SetChannelOptions | Es el canal {@link SetChannelOptions} a establecer |
Returns: Promise<ChannelRes>
Since: 470
unsetChannel()
unsetChannel(options: UnsetChannelOptions) => Promise<void>
Desestablece el canal para este dispositivoEl dispositivo volverá entonces al canal predeterminado
Param | Type |
---|---|
options | UnsetChannelOptions |
Since: 470
getChannel()
getChannel() => Promise<GetChannelRes>
Obtener el canal para este dispositivo
Returns: Promise<GetChannelRes>
Since: 480
setCustomId()
setCustomId(options: SetCustomIdOptions) => Promise<void>
Establecer un ID personalizado para este dispositivo
Param | Type | Description |
---|---|---|
options | SetCustomIdOptions | es el {@link SetCustomIdOptions} customId a establecer |
Since: 490
getBuiltinVersion()
getBuiltinVersion() => Promise<BuiltinVersion>
Obtener la versión nativa de la app o la versión incorporada si está configurada
Returns: Promise<BuiltinVersion>
Since: 520
getDeviceId()
getDeviceId() => Promise<DeviceId>
Obtener ID único usado para identificar el dispositivo (enviado al servidor de actualización automática)
Returns: Promise<DeviceId>
getPluginVersion()
getPluginVersion() => Promise<PluginVersion>
Obtener la versión nativa del plugin Capacitor Updater (enviada al servidor de actualización automática)
Returns: Promise<PluginVersion>
isAutoUpdateEnabled()
isAutoUpdateEnabled() => Promise<AutoUpdateEnabled>
Obtener el estado de la configuración de actualización automática
Returns: Promise<AutoUpdateEnabled>
removeAllListeners()
removeAllListeners() => Promise<void>
Eliminar todos los listeners de este plugin
Since: 100
addListener(‘download’, )
addListener(eventName: 'download', listenerFunc: (state: DownloadEvent) => void) => Promise<PluginListenerHandle>
Escuchar el evento de descarga de bundle en la App. Se activa cuando comienza una descarga, durante la descarga y cuando finaliza
Param | Type |
---|---|
eventName | ’download’ |
listenerFunc | (state: DownloadEvent) => void |
Returns: Promise<PluginListenerHandle>
Since: 2011
addListener(‘noNeedUpdate’, )
addListener(eventName: 'noNeedUpdate', listenerFunc: (state: NoNeedEvent) => void) => Promise<PluginListenerHandle>
Escuchar el evento de no necesidad de actualización, útil cuando deseas forzar la comprobación cada vez que se inicia la app
Param | Type |
---|---|
eventName | ’noNeedUpdate’ |
listenerFunc | (state: NoNeedEvent) => void |
Returns: Promise<PluginListenerHandle>
Since: 400
addListener(‘updateAvailable’, )
addListener(eventName: 'updateAvailable', listenerFunc: (state: UpdateAvailableEvent) => void) => Promise<PluginListenerHandle>
Escuchar el evento de actualización disponible, útil cuando deseas forzar la comprobación cada vez que se inicia la app
Param | Type |
---|---|
eventName | ’updateAvailable’ |
listenerFunc | (state: UpdateAvailableEvent) => void |
Returns: Promise<PluginListenerHandle>
Since: 400
addListener(‘downloadComplete’, )
addListener(eventName: 'downloadComplete', listenerFunc: (state: DownloadCompleteEvent) => void) => Promise<PluginListenerHandle>
Escuchar eventos de descarga completada
Param | Type |
---|---|
eventName | ’downloadComplete’ |
listenerFunc | (state: DownloadCompleteEvent) => void |
Returns: Promise<PluginListenerHandle>
Since: 400
addListener(‘majorAvailable’, )
addListener(eventName: 'majorAvailable', listenerFunc: (state: MajorAvailableEvent) => void) => Promise<PluginListenerHandle>
Escuchar el evento de actualización Mayor en la App, te permite saber cuándo una actualización mayor está bloqueada por la configuración disableAutoUpdateBreaking
Param | Type |
---|---|
eventName | ’majorAvailable’ |
listenerFunc | (state: MajorAvailableEvent) => void |
Returns: Promise<PluginListenerHandle>
Since: 230
addListener(‘updateFailed’, )
addListener(eventName: 'updateFailed', listenerFunc: (state: UpdateFailedEvent) => void) => Promise<PluginListenerHandle>
Escuchar el evento de fallo de actualización en la App, te permite saber cuándo una actualización ha fallado al instalarse en el próximo inicio de la app
Param | Type |
---|---|
eventName | ’updateFailed’ |
listenerFunc | (state: UpdateFailedEvent) => void |
Returns: Promise<PluginListenerHandle>
Since: 230
addListener(‘downloadFailed’,```typescript
addListener(eventName: ‘downloadFailed’, listenerFunc: (state: DownloadFailedEvent) => void) => Promise
Escuchar el evento de fallo de descarga en la App, te permite saber cuando ha fallado la descarga de un paquete
| Param | Tipo || ------------------ | --------------------------------------------------------------------------------------- || **`eventName`** | <code>'downloadFailed'</code> || **`listenerFunc`** | <code>(state: <a href="#downloadfailedevent">DownloadFailedEvent</a>) => void</code> |
**Devuelve:** <code>Promise<<a href="#pluginlistenerhandle">PluginListenerHandle</a>></code>
**Desde:** 400
--------------------
## addListener('appReloaded', )
```typescriptaddListener(eventName: 'appReloaded', listenerFunc: () => void) => Promise<PluginListenerHandle>
Escuchar el evento de recarga en la App, te permite saber cuando se ha producido una recarga
Param | Tipo |
---|---|
eventName | ’appReloaded’ |
listenerFunc | () => void |
Devuelve: Promise<PluginListenerHandle>
Desde: 430
addListener(‘appReady’, )
addListener(eventName: 'appReady', listenerFunc: (state: AppReadyEvent) => void) => Promise<PluginListenerHandle>
Escuchar el evento de app lista en la App, te permite saber cuando la app está lista para usarse
Param | Tipo |
---|---|
eventName | ’appReady’ |
listenerFunc | (state: AppReadyEvent) => void |
Devuelve: Promise<PluginListenerHandle>
Desde: 510
isAutoUpdateAvailable()
isAutoUpdateAvailable() => Promise<AutoUpdateAvailable>
Obtener si la actualización automática está disponible (no deshabilitada por serverUrl)
Devuelve: Promise<AutoUpdateAvailable>
getNextBundle()
getNextBundle() => Promise<BundleInfo | null>
Obtener el siguiente paquete que será utilizado cuando la app se recargue Devuelve null si no hay un siguiente paquete establecido
Devuelve: Promise<BundleInfo | null>
Desde: 680
Interfaces
AppReadyResult
Prop | Tipo |
---|---|
bundle | BundleInfo |
BundleInfo
Prop | Tipo |
---|---|
id | string |
version | string |
downloaded | string |
checksum | string |
status | BundleStatus |
UpdateUrl
Prop | Tipo |
---|---|
url | string |
StatsUrl
Prop | Tipo |
---|---|
url | string |
ChannelUrl
Prop | Tipo |
---|---|
url | string |
DownloadOptions
Prop | Tipo | Descripción | Por defecto | Desde |
---|---|---|---|---|
url | string | La URL del archivo zip del paquete (ej: distzip) a descargar (Puede ser cualquier URL Ej: Amazon S3, un tag de GitHub, cualquier otro lugar donde hayas alojado tu paquete) | ||
version | string | El código/nombre de versión de este paquete/versión | ||
sessionKey | string | La clave de sesión para la actualización | undefined | 400 |
checksum | string | El checksum para la actualización | undefined | 400 |
BundleId
Prop | Tipo |
---|---|
id | string |
BundleListResult
Prop | Tipo |
---|---|
bundles | BundleInfo[] |
ListOptions
Prop | Tipo | Descripción | Por defecto | Desde |
---|---|---|---|---|
raw | boolean | Si devolver la lista cruda de paquetes o el manifiesto. Si es true, la lista intentará leer la base de datos interna en lugar de los archivos en disco | false | 6140 |
ResetOptions
Prop | Tipo |
---|---|
toLastSuccessful | boolean |
CurrentBundleResult
Prop | Tipo |
---|---|
bundle | BundleInfo |
native | string |
MultiDelayConditions
Prop | Tipo |
---|---|
delayConditions | DelayCondition[] |
DelayCondition
Prop | Tipo | Descripción |
---|---|---|
kind | DelayUntilNext | Establecer condiciones de retraso en setMultiDelay |
value | string |
LatestVersion
Prop | Tipo | Descripción | Desde |
---|---|---|---|
version | string | Resultado del método getLatest | 400 |
checksum | string | 6 | |
major | boolean | ||
message | string | ||
sessionKey | string | ||
error | string | ||
old | string | ||
url | string | ||
manifest | ManifestEntry[] | 61 |
ManifestEntry
Prop | Type |
---|---|
file_name | string | null |
file_hash | string | null |
download_url | string | null |
GetLatestOptions
Prop | Type | Description | Default | Since |
---|---|---|---|---|
channel | string | El canal para obtener la última versión. El canal debe permitir ‘self_assign’ para que esto funcione | undefined | 680 |
ChannelRes
Prop | Type | Description | Since |
---|---|---|---|
status | string | Estado actual del canal establecido | 470 |
error | string | ||
message | string |
SetChannelOptions
Prop | Type |
---|---|
channel | string |
triggerAutoUpdate | boolean |
UnsetChannelOptions
Prop | Type |
---|---|
triggerAutoUpdate | boolean |
GetChannelRes
Prop | Type | Description | Since |
---|---|---|---|
channel | string | Estado actual del canal obtenido | 480 |
error | string | ||
message | string | ||
status | string | ||
allowSet | boolean |
SetCustomIdOptions
Prop | Type |
---|---|
customId | string |
BuiltinVersion
Prop | Type |
---|---|
version | string |
DeviceId
Prop | Type |
---|---|
deviceId | string |
PluginVersion
Prop | Type |
---|---|
version | string |
AutoUpdateEnabled
Prop | Type |
---|---|
enabled | boolean |
PluginListenerHandle
Prop | Type |
---|---|
remove | () => Promise<void> |
DownloadEvent
Prop | Type | Description | Since |
---|---|---|---|
percent | number | Estado actual de la descarga, entre 0 y 100 | 400 |
bundle | BundleInfo |
NoNeedEvent
Prop | Type | Description | Since |
---|---|---|---|
bundle | BundleInfo | Estado actual de la descarga, entre 0 y 100 | 400 |
UpdateAvailableEvent
Prop | Type | Description | Since |
---|---|---|---|
bundle | BundleInfo | Estado actual de la descarga, entre 0 y 100 | 400 |
DownloadCompleteEvent
Prop | Type | Description | Since |
---|---|---|---|
bundle | BundleInfo | Se emite cuando hay una nueva actualización disponible | 400 |
MajorAvailableEvent
Prop | Type | Description | Since |
---|---|---|---|
version | string | Se emite cuando hay un nuevo paquete principal disponible | 400 |
UpdateFailedEvent
Prop | Type | Description | Since |
---|---|---|---|
bundle | BundleInfo | Se emite cuando una actualización falla al instalarse | 400 |
DownloadFailedEvent
Prop | Type | Description | Since |
---|---|---|---|
version | string | Se emite cuando falla una descarga | 400 |
AppReadyEvent
Prop | Type | Description | Since |
---|---|---|---|
bundle | BundleInfo | Se emite cuando la aplicación está lista para usar | 520 |
status | string |
AutoUpdateAvailable
Prop | Type |
---|---|
available | boolean |
Type Aliases
BundleStatus
‘success’ | ‘error’ | ‘pending’ | ‘downloading’
DelayUntilNext
‘background’ | ‘kill’ | ‘nativeVersion’ | ‘date’