V3 から V4 へ
アップグレードの理由
Discordコミュニティでの多くの対話を通じて、手動モードが非常に手動的すぎて安全でないことが分かりました。例えば、自動リバートが不可能で、手動更新に失敗した場合、ユーザーはアプリを削除して再インストールする必要があり、これは terrible UXでした。
その間、これを機会としてより多くの自由度を提供し、私が作成した悪いコードをすべて削除することにしました。
インストール
npm i @capgo/capacitor-updater@4
クラウド自動更新
アプリで基本的な例を使用している場合は、新しいバージョンに安全に移行できます。お楽しみください!
セルフホスト自動更新
こちらも簡単です。変更点は以下の通りです:
- 設定名が
autoUpdateUrlからupdateUrlに変更 - エンドポイントメソッドが
GETからPOSTに変更
手動ユーザー
これが最も大きな変更ですが、良い方向への変更です!多くの改善が加えられました。注意深くお読みください。
変更点
autoUpdateUrlがupdateUrlになりました。この設定は手動モードでも使用できるようになったためですcancelDelayとdelayUpdateを削除し、setDelayに統合- セットに
versionNameが不要に - ほとんどの関数で返される
versionキーがBundleInfoオブジェクトに変更
interface BundleInfo { id: string; version: string; downloaded: string; status: 'success' | 'error' | 'pending' | 'downloading'}- 紛らわしい名前の変更(説明は難しいかもしれませんが、使用時には新しい名前が理解しやすいはずです):
versionと呼ばれていたものは現在bundleを指しますidは10文字のランダムな文字列だった古いversionを指し、このidはバンドルにアクセスする唯一の信頼できるユニークな方法です。例:7Dfcd2RedNversionは現在、バンドルに選択したversionNameを指します。例:100
updateUrlがgetからpostに変更。カスタムヘッダーが一部のユーザーで問題となっていたため、またpostの方が論理的なため。以前のヘッダーはすべてボディに移動し、cap_プレフィックスは削除versionNameメソッドが削除され、getIdに統合- listが
BundleInfoのリストを返すように getIdをgetDeviceIdに改名autoUpdateがデフォルトでtrueに。手動モードを使用する場合は、falseに設定
新機能
- メソッド
getLatest:updateUrlで設定したサーバーから利用可能な最新バージョンを取得可能 - メソッド
setDelay:{kind: "background" | "kill" | "nativeVersion" | "date", value?: string}を引数として受け取り、異なるモードの遅延を設定 - メソッド
next:次のバックグラウンド化時にバージョンを設定。即時実行するsetの反対 - メソッド
isAutoUpdateEnabled:自動更新コンテキストにいるかどうかを確認 - イベント
downloadComplete:ダウンロードが100%に達した時 - ダウンロードメソッドで
versionフィールドが必須に notifyAppReadyが手動モードでも必須に。10秒以内に呼び出されないと以前のバージョンに戻ります
貢献者
@lincolnthree この作業を始めていただき、ありがとうございます。このアップデートはあなたなしでは実現不可能でした。