Как автоматически обновить приложение Flutter Mobile до более новой версии, когда приложение отсутствует в магазине игр или магазине приложений?

скажем, у меня есть Flutter APK, размещенный на моем веб-сайте, где пользователи могут загружать и устанавливать, мне интересно знать, насколько возможно, что приложение может проверять наличие более новой версии, когда приложение запускается, и если это правда, появляется индикатор выполнения, показывающий автоматический обновление приложения с сервера (не play store или app store)? .
вот компания, которая выполняет в точности указанное выше значение:

  • скачать apk с сервера
  • всякий раз, когда выходит новая версия, приложение обновляется со своего сервера.

есть идеи, как этого добиться?


person Asmoun    schedule 05.09.2020    source источник
comment
Насколько широкое распространение? Вы поддерживаете несколько установок или много?   -  person spartygw    schedule 08.09.2020
comment
@spartygw это одно приложение, и каждый раз, когда я загружаю новую версию, пользователи будут автоматически обновлять свою версию до новой. Это ответ на ваш вопрос?   -  person Asmoun    schedule 08.09.2020
comment
Нет, я хотел спросить, сколько пользователей устанавливают это приложение? В зависимости от вашего ответа у меня может быть предложенное решение.   -  person spartygw    schedule 08.09.2020
comment
@spartygw я бы сказал от 50 до 100 активных пользователей на моем веб-сайте, и теперь я разрабатываю это приложение flutter, но оно масштабируется до 1 тыс. активных пользователей в день.   -  person Asmoun    schedule 08.09.2020
comment
Я бы сказал, что вам нужно будет реализовать загрузку APK с вашего сервера, для этого вы можете использовать несколько доступных пакетов, пока вы закончили загрузку, просто запустите установку apk, для этого вам нужно будет создать плагин самостоятельно, чтобы использовать собственный код Android.   -  person Jav T    schedule 09.09.2020


Ответы (4)


Вы можете написать службу на стороне сервера, которая будет проверять текущую версию со старой версией на экране-заставке. Во-первых, вы должны отправить текущую версию на сервер и проверить загрузку версии с загруженной старой версией, а затем, если есть новая версия, вернуть предупреждение и apk для загрузки

person hosein moradi    schedule 09.09.2020
comment
Салем, спасибо за помощь, не могли бы вы сослаться на некоторые ссылки, пожалуйста, для Flutter - person Asmoun; 09.09.2020

ota_update (как упомянуто @ Amoun) мне подходит для этого варианта использования, альтернативой будет загрузка APK, используя что-то вроде flutter_downloader и начать установку с помощью android_intent.

Кроме того, для получения кода последней версии или URL-адреса загрузки я предлагаю вам использовать firebase_remote_config.

person Harsh Bhikadia    schedule 13.09.2020
comment
@Asmoun Дайте мне знать, если вам понадобится образец кода. Инструкции для этих плагинов не требуют пояснений! - person Harsh Bhikadia; 13.09.2020
comment
да, было бы здорово, если бы вы могли поделиться образцом кода. Мне нужно сделать это в моем проекте, но я не совсем уверен, что мне нужно делать. Если я использую ota_update и даю ссылку на файл apk на моем сервере, разве этого не должно быть достаточно? Зачем нужен flutter_downloader и другие упомянутые вами пакеты? заранее спасибо - person Sunpreet Singh; 20.05.2021

Я нашел этот пакет ota_update 2.4.1, выглядит очень многообещающим для обновления Flutter с удаленного размещенного Apk здесь это пример:

   // IMPORT PACKAGE
    import 'package:ota_update/ota_update.dart';
    
      // RUN OTA UPDATE 
      // START LISTENING FOR DOWNLOAD PROGRESS REPORTING EVENTS
      try {
          //LINK CONTAINS APK OF FLUTTER HELLO WORLD FROM FLUTTER SDK EXAMPLES
          OtaUpdate()
              .execute(
            'https://internal1.4q.sk/flutter_hello_world.apk',
            // OPTIONAL
            destinationFilename: 'flutter_hello_world.apk',
            //OPTIONAL, ANDROID ONLY - ABILITY TO VALIDATE CHECKSUM OF FILE:
            sha256checksum: "d6da28451a1e15cf7a75f2c3f151befad3b80ad0bb232ab15c20897e54f21478",
          ).listen(
            (OtaEvent event) {
              setState(() => currentEvent = event);
            },
          );
      } catch (e) {
          print('Failed to make OTA update. Details: $e');
      }

любые другие предлагаемые решения приветствуются.

person Asmoun    schedule 08.09.2020
comment
Этот плагин мне подходит для этого варианта использования, альтернативой может быть загрузка APK с помощью чего-то вроде flutter_downloader, и запустите инициатор для установки с помощью android_intent. - person Harsh Bhikadia; 11.09.2020
comment
Но это слишком много работы !! Просто используйте упомянутый плагин, если он работает нормально. - person Harsh Bhikadia; 11.09.2020
comment
привет, как получить sha256checksum? - person ff .n; 10.04.2021
comment
@ ff.n привет, на основе документации я думаю, что это необязательно, поэтому вы можете передать его, если вы нашли ответ полезным, не могли бы вы проголосовать за сообщение и ответить - person Asmoun; 10.04.2021

Если вам это нужно только для Android, вы можете использовать библиотеку in_app_update.

Если вам нужна функциональность и для iOS, указанная выше библиотека рекомендует программу обновления, которая делает что-то похожее, но не то же самое.

person S.V.    schedule 11.09.2020
comment
спасибо за помощь, но я ищу решение для приложения Flutter - person Asmoun; 12.09.2020