Von V3 zu V4
Por qué esta actualización
Después de muchas conversaciones en la comunidad de Discord con ustedes, descubrí que el modo manual era demasiado manual y no seguro de usar, por ejemplo, la auto-reversión no era posible, por lo que si fallaba la actualización en manual el usuario tenía que eliminar la aplicación y volver a instalarla, lo cual es una terrible experiencia de usuario
Mientras tanto, tomé esto como una oportunidad para darles más libertad y eliminar todo el código malo que hice
Instalación
npm i @capgo/capacitor-updater@4
Auto-actualización en la nube
Si usas el ejemplo básico en tu aplicación, es seguro migrar a la nueva versión, ¡disfrútalo!
Auto-actualización auto-alojada
Para ti, sigue siendo simple, los cambios son:
- El nombre de la configuración de
autoUpdateUrlaupdateUrl - El método del endpoint cambió de
GETa POST
Usuarios manuales
Para ti, este es el cambio más significativo, ¡pero para mejor! Obtienes toneladas de mejoras, lee cuidadosamente
Cambios
autoUpdateUrlse convierte enupdateUrlya que esta configuración puede usarse en modo manual ahora también- Eliminación de
cancelDelayydelayUpdateen favor desetDelay - Ya no hay
versionNameen set - Cambio de la clave
version, que se devolvía en la mayoría de funciones al objetoBundleInfo
interface BundleInfo { id: string; version: string; downloaded: string; status: 'success' | 'error' | 'pending' | 'downloading'}- Renombrado de nombres confusos ahora (incluso para explicar no puede ser claro, pero en el uso es fácil entender el nuevo):
- lo que se llamaba
versionahora se refiere a unbundle idse refiere a la antiguaversionque era una cadena aleatoria de 10 caracteres, esteides la única forma confiable y única de acceder a tus bundles, ejemplo7Dfcd2RedNversionse refiere ahora alversionNameque eliges para un bundle, ejemplo100
- lo que se llamaba
updateUrlcambia degetapost, ya que los encabezados personalizados eran un problema para algunos de ustedes y post es más lógico, todos los encabezados anteriores van al cuerpo y el prefijocap_desaparece- el método
versionNamese elimina, en favor degetId - list ahora devuelve una lista de
BundleInfo - Renombrado
getIdagetDeviceId autoUpdatese vuelve verdadero por defecto, si usas el modo Manual, establécelo en falso
Novedades
- Método
getLatest, este método te permite obtener de tu servidor configurado conupdateUrlla última versión disponible - Método
setDelayque toma{kind: "background" | "kill" | "nativeVersion" | "date", value?: string}como argumento para establecer el retraso en diferentes modos - Método
next, para establecer la versión en el próximo paso a segundo plano, en oposición asetque lo hace instantáneamente - Método
isAutoUpdateEnabled, para que sepas si estás en un contexto de auto-actualización - Evento
downloadCompletecuando la descarga alcanza el 100% - Campo obligatorio añadido
versionen el método download notifyAppReadyse vuelve obligatorio en modo manual también, si no se llama después de 10 segundos la aplicación vuelve a la versión anterior
Contribuidores
@lincolnthree Muchas gracias por iniciar este trabajo, era imposible hacer que esta actualización funcionara sin ti