Проверка наличия обновлений
Прежде чем запрашивать обновление, проверьте, доступно ли обновление для вашего приложения. Для проверки наличия обновлений вызовите метод GetAppUpdateInfo(). При вызове данного метода проверяются следующие условия:
- На устройстве пользователя должен быть установлен RuStore.
- Версия RuStoreApp на устройстве пользователя должна быть актуальной.
- Пользователь должен быть авторизован в RuStore.
- Пользователь и приложение не должны быть заблокированы в RuStore.
- Приложению RuStore должна быть разрешена установка приложений.
В ответ на данный метод вы получите объект AppUpdateInfo, который будет содержать в себе информацию о необходимости обновления. Запросите информацию заранее, чтобы запросить у пользователя запуск скачивания обновления без задержки и в удобный для пользователя момент времени.
long requestId = GetAppUpdateInfo( []( long requestId, TSharedPtr<FURuStoreAppUpdateInfo, ESPMode::ThreadSafe> response) { // Process response }, []( long requestId, TSharedPtr<FURuStoreError, ESPMode::ThreadSafe> error) { // Process error } ); |
Blueprint-реализация:
Колбэк Success возвращает структуру AppUpdateInfo в параметре Response:
Объект AppUpdateInfo содержит набор параметров, необходимых для определения доступности обновления:
- updateAvailability - доступность обновления:
- UPDATE_NOT_AVAILABLE - обновление не нужно.
- UPDATE_AVAILABLE - обновление требуется загрузить или обновление уже загружено на устройство пользователя.
- DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS - обновление уже скачивается или установка уже запущена.
- UNKNOWN - статус по умолчанию.
- installStatus - статус установки обновления, если пользователь уже устанавливает обновление в текущий момент времени:
-
DOWNLOADED - скачано.
-
DOWNLOADING - скачивается.
-
FAILED - ошибка.
-
INSTALLING - устанавливается.
-
PENDING - в ожидании.
- UNKNOWN - по умолчанию.
-
Запуск скачивания обновления возможен только в том случае, если поле updateAvailability содержит значение UPDATE_AVAILABLE.
Колбэк Failure возвращает структуру FURuStoreError с информацией об ошибке в параметре Error. Детальнее с ними можно ознакомиться в разделе Возможные ошибки.
После получения AppUpdateInfo можно проверить доступность принудительного обновления используя метод CheckIsImmediateUpdateAllowed().
bool available = URuStoreAppUpdateManager::Instance()->CheckIsImmediateUpdateAllowed(); |
Blueprint-реализация: