sync() メソッドを使用してアップデートをインストールするとします。アップデートのインストール中に端末の電源を切った場合、アプリは正常に再起動できますか? また、プラグインは自動的にアップデートを再度インストールしようとしますか?
環境: React-Native 0.24 (Android)
sync() メソッドを使用してアップデートをインストールするとします。アップデートのインストール中に端末の電源を切った場合、アプリは正常に再起動できますか? また、プラグインは自動的にアップデートを再度インストールしようとしますか?
環境: React-Native 0.24 (Android)
このsync
メソッドは、実行中のアプリを最新の状態に保つために、内部で 3 つの個別のステップを実行します。
サーバーに利用可能なアップデートがあるかどうかを確認しています。このチェックの途中で電話の電源が切られた場合、アプリはまったく問題なく、電話が再起動されると、このチェックが再び行われ (sync
が呼び出されたときに)、以前と同じ応答が返されます。
利用可能なアップデートをダウンロードしています。このプロセスの途中で電話がオフになっていた場合、アプリは完全に問題ありません. 電話が再起動されると、への呼び出しsync
によって不完全な更新が検出され、削除され、再ダウンロードされます。現在、以前に開始した更新のダウンロードの再開はサポートしていませんが、更新が完了して整合性チェックに合格しない限り、更新が実際に実行されないようにしています (たとえば、期待どおりの適切なコンテンツを取得したかなど)。
ダウンロードした更新プログラムのインストール。更新がダウンロードされると、ディスク上で事実上「孤立」し、CodePush ランタイムがそれを「インストール」するまで実際には利用可能になりません。アプリが起動します。指定したインストール モードによっては、この手順でアプリをプログラムで再起動する必要がある場合もあります。このプロセスの途中で電話が切れた場合、アプリは問題ありません。ダウンロードされた更新は引き続き「孤立」し、次回アプリが起動したときに以前のバージョンが実行され、その後の呼び出しがsync
更新を検出し、再度ダウンロードします。インストール手順が妨げられるのはそのようなエッジ ケースであるため、以前にダウンロードされた完全な更新プログラムをディスク上で検出して、単純にインストールすることは現在サポートされていません。サーバーが差分更新をサポートしているおかげで、ファイルが数個になることを願っています。時間が経つにつれて、このユースケースを最適化したいと考えていますが、まだ問題を示していません.
他に質問がある場合、または質問に完全に回答していない場合はお知らせください。React Native プラグインがこの種の予期しない中断に対して回復力があることを確認するために、私たちは多くの作業を行ってきました。それに関するフィードバックをもっと聞きたいです!