Von V3 zu V4
Warum dieses Upgrade
Nach vielen Gesprächen mit Ihnen in der Discord-Community habe ich festgestellt, dass der manuelle Modus zu manuell und nicht sicher in der Anwendung war. Zum Beispiel war ein automatisches Zurücksetzen nicht möglich, sodass bei einem fehlgeschlagenen Update der Benutzer die App entfernen und neu installieren musste, was eine sehr schlechte Nutzererfahrung darstellt.
In der Zwischenzeit habe ich dies als Gelegenheit genutzt, Ihnen mehr Freiheit zu geben und den gesamten schlechten Code zu entfernen.
Installation
npm i @capgo/capacitor-updater@4
Auto-Update Cloud
Wenn Sie das Grundbeispiel in Ihrer App verwenden, können Sie sicher auf die neue Version migrieren. Viel Spaß!
Auto-Update Self-Hosted
Für Sie ist es weiterhin einfach, die Änderungen sind:
- Der Name der Einstellung von
autoUpdateUrlzuupdateUrl - Die Endpoint-Methode wurde von
GETzuPOSTgeändert
Manuelle Benutzer
Für Sie ist dies die bedeutendste Änderung, aber zum Besten! Sie erhalten viele Verbesserungen, lesen Sie sorgfältig.
Änderungen
autoUpdateUrlwird zuupdateUrl, da diese Einstellung jetzt auch im manuellen Modus verwendet werden kann- Löschung von
cancelDelayunddelayUpdatezugunsten vonsetDelay - Kein
versionNamemehr in set - Änderung des
version-Schlüssels, der in den meisten Funktionen zum ObjektBundleInfozurückgegeben wurde
interface BundleInfo { id: string; version: string; downloaded: string; status: 'success' | 'error' | 'pending' | 'downloading'}- Umbenennung irreführender Namen (auch wenn die Erklärung nicht klar sein kann, ist die Verwendung der neuen Namen einfach zu verstehen):
- was als
versionbezeichnet wurde, wird jetzt alsbundlebezeichnet idbezieht sich auf die alteversion, die eine zufällige Zeichenfolge von 10 Zeichen war, dieseidist die einzige vertrauenswürdige und eindeutige Möglichkeit, auf Ihre Bundles zuzugreifen, Beispiel7Dfcd2RedNversionbezieht sich jetzt auf denversionName, den Sie für ein Bundle wählen, Beispiel100
- was als
updateUrlwechselt vongetzupost, da benutzerdefinierte Header für einige von Ihnen ein Problem darstellten und post logischer ist, alle vorherigen Header gehen in den Body und das Präfixcap_verschwindetversionName-Methode wird gelöscht, zugunsten vongetId- list gibt jetzt eine Liste von
BundleInfozurück - Umbenennung von
getIdingetDeviceId autoUpdatewird standardmäßig auf true gesetzt, wenn Sie den manuellen Modus verwenden, setzen Sie es auf false
Neuheiten
- Methode
getLatest, diese Methode ermöglicht es Ihnen, von Ihrem mitupdateUrleingestellten Server die letzte verfügbare Version zu erhalten - Methode
setDelay, die{kind: "background" | "kill" | "nativeVersion" | "date", value?: string}als Argument nimmt, um Verzögerungen für verschiedene Modi einzustellen - Methode
next, um die Version beim nächsten Hintergrundprozess festzulegen, im Gegensatz zuset, das es sofort ausführt - Methode
isAutoUpdateEnabled, um zu erfahren, ob Sie sich im Auto-Update-Kontext befinden - Event
downloadComplete, wenn der Download 100% erreicht - Hinzugefügtes Pflichtfeld
versionin der Download-Methode notifyAppReadywird auch im manuellen Modus obligatorisch, wenn nicht nach 10 Sekunden aufgerufen, kehrt die App zur vorherigen Version zurück
Mitwirkende
@lincolnthree Vielen Dank für den Start dieser Arbeit, es wäre unmöglich gewesen, dieses Update ohne Sie zum Laufen zu bringen