关于如何使用自定义 Shorebird 补丁下载路径进行热更新

796 阅读1分钟

关于如何使用自定义 Shorebird 补丁下载路径进行热更新

在上一篇文章 研究基于 Flutter Shorebird 热更新支持中国区域的问题文章中我们解析了整个链路。

对此我准备写一款软件来从当前的谷歌源迁移到自己服务器的时候,这个时候官方突然发布迁移到 CDN。

这是一个好事情,官方的 CDN 是支持中国区域的问题的。

但是官方的下载补丁的插件不支持查看下载进度,对于我基于第一篇文章的原因开发了替代官方下载补丁的全新的插件。

shorebird_downloader

这一款插件,当时还是按照官方的 CDN 进行下载的,但是我依然提供了自定义下载地址的下载方法。

引用插件

对于引入插件十分的简单

flutter pub add shorebird_downloader

下载 Shorebird CDN 补丁

如果你想直接通过官方的 CDN 进行下载,可以使用下面的方法进行下面。

final downloader =
    ShorebirdUrlDownloader(appid: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
await downloader.downloadPatch((size,totol) => print("$size/$totol"));

下载器需要传入你的 Shorebird 的应用 id,这个我没有任何的资料找到自动抓取的地方。

下载自定义补丁地址

class ShorebirdCustomUrlDownloader extends ShorebirdDownloader {
  ShorebirdUrlDownloader({required super.appid});

  @override
  Future<Patch?> requestPatchInfo() async {

    // TODO: http request custom your server url
    // [number] represents the latest patch number
    // [downloadUrl] represents the latest patch number
    return Patch(number: number, downloadUrl: downloadUrl);
  }
}
final downloader =
    ShorebirdCustomUrlDownloader(appid: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
await downloader.downloadPatch((size,totol) => print("$size/$totol"));

迁移官方 CDN到自定义服务器

这个工作我准备在后续的一段时间进行支持,最先支持是免费的服务器 Appwrite 的支持。

之后我再支持自定义支持服务器的迁移工作。