如何自动更新Flutter移动的应用程序到较新的版本时,应用程序不在播放商店或应用程序商店?

g6baxovj  于 2023-02-09  发布在  Flutter
关注(0)|答案(5)|浏览(295)

比方说,我有一个Flutter APK托管在我的网站上,用户可以下载并安装,我感兴趣的是如何可能的应用程序可以检查较新的版本时,应用程序午餐,如果是真的,出现一个进度条,显示从服务器(不是播放商店或应用程序商店)应用程序的自动更新?.
这里是一个company,完全符合上述含义:

  • 从那里下载APK服务器
  • 每当发布新版本时,应用程序将从其服务器更新

有什么办法可以做到这一点吗?

drnojrws

drnojrws1#

我发现这个软件包ota_update 2.4.1,看起来很有希望从远程托管的APK更新Flutter这里是一个例子:

// 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');
      }

欢迎提出任何其他解决办法。

bvjveswy

bvjveswy2#

ota_update(如@Asmoun所述)在我看来很适合此用例,另一种方法是使用类似flutter_downloader的东西下载APK,并使用android_intent启动安装意图。
此外,为了获取最新版本的代码或下载URL,我建议您使用firebase_remote_config

hmae6n7t

hmae6n7t3#

你可以在服务器端写一个服务,在闪屏中检查当前版本和旧版本。首先,你必须发送当前版本到服务器,并检查版本上传与旧版本上传,然后如果有一个新版本返回警报和apk下载

wgx48brx

wgx48brx4#

如果您只需要在Android上使用这个函数,您可以使用in_app_update库。
如果你也需要iOS的功能,上面的库推荐了upgrader,它做了一些类似但不相同的事情。

5vf7fwbs

5vf7fwbs5#

导入“数据包: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');
  }

要获取sha 256 sum校验和,在Linux中,命令是sha 256 sum,后跟apk文件的路径。
sha 256 sum.../build/应用程序/输出/flutter- apk/应用程序版本.apk〉输出文件名
目录输出文件名
这里是sha 256校验和
01b65bdbef021df3ceae02c03aeb303770d03d02f100693ab3f4d6aca599ab4c

相关问题