Скачивание обновлений

После подтверждения доступности обновления вы можете запросить у пользователя скачивание обновления, но перед этим необходимо запустить слушатель статуса скачивания обновления, используя метод listener().

RustoreUpdateClient.listener((value) {
  print("listener installStatus ${value.installStatus}");
  print("listener bytesDownloaded ${value.bytesDownloaded}");
  print("listener totalBytesToDownload ${value.totalBytesToDownload}");
  print("listener installErrorCode ${value.installErrorCode}");
 
  if (value.installStatus == INSTALL_STATUS_DOWNLOADED) {
    // тут можно вызывать метод complete()
  }
});

Объект state описывает текущий статус скачивания обновления. Объект содержит:

  • installStatus  статус установки обновления, если пользователь уже устанавливает обновление в текущий момент времени:
    • INSTALL_STATUS_DOWNLOADED  скачано. 

    • INSTALL_STATUS_DOWNLOADING  скачивается. 

    • INSTALL_STATUS_FAILED  ошибка. 

    • INSTALL_STATUS_INSTALLING  устанавливается. 

    • INSTALL_STATUS_PENDING  в ожидании. 

    • INSTALL_STATUS_UNKNOWN  по умолчанию. 
  • bytesDownloaded  количество загруженных байт. 
  • totalBytesToDownload  общее количество байт, которое необходимо скачать. 
  • installErrorCode  код ошибки во время скачивания.

Детальнее с возможными ошибками можно ознакомиться в разделе «Возможные ошибки»

Скачивание с UI от RuStore

Для запуска скачивания обновления приложения вызовите метод download(). 

RustoreUpdateClient.download().then((value) {
  print("download code ${value.code}");
}).catchError((err) {
  print("download err ${err}");
});

Если пользователь подтвердил скачивание обновления, то value.code = ACTIVITY_RESULT_OK, если отказался, то value.code = ACTIVITY_RESULT_CANCELED.

После вызова метода вы можете следить за статусом скачивания обновления в слушателе. Если в слушателе вы получили статус INSTALL_STATUS_DOWNLOADED, то вы можете вызвать метод установки обновления. Рекомендуем уведомить пользователя о готовности установки обновления.

Метод может вернуть ошибку. Возможные ошибки

Принудительное обновление

Для запуска скачивания обязательного обновления приложения вызовите метод immediate(). 

RustoreUpdateClient.immediate().then((value) {
  print("immediate code ${value.code}");
}).catchError((err) {
  print("immediate err ${err}");
});

Если пользователь подтвердил скачивание обновления, то value.code = ACTIVITY_RESULT_OK, если отказался, то value.code = ACTIVITY_RESULT_CANCELED.

После вызова метода вы можете следить за статусом скачивания обновления в слушателе. Если в слушателе вы получили статус INSTALL_STATUS_DOWNLOADED, то вы можете вызвать метод установки обновления. Рекомендуем уведомить пользователя о готовности установки обновления. 

Метод может вернуть ошибку. Детальнее со списком ошибок можно ознакомиться в разделе Возможные ошибки

Тихое обновление

Для запуска скачивания обновления приложения без интерфейса RuStore вызовите метод silent(). 

RustoreUpdateClient.silent().then((value) {
  print("silent code ${value.code}");
}).catchError((err) {
  print("silent err ${err}");
});

После вызова метода вы можете следить за статусом скачивания обновления в слушателе. Если в слушателе вы получили статус INSTALL_STATUS_DOWNLOADED, то вы можете вызвать метод установки обновления. Рекомендуем уведомить пользователя о готовности установки обновления. 

Метод может вернуть ошибку. Детальнее со списком ошибок можно ознакомиться в разделе Возможные ошибки

Обновлено 6 сентября 2023 г.
Was this information helpful?