比较新的解释
https://juejin.im/entry/5c85c959f265da2d881b5eb8
https://my.oschina.net/u/1464083/blog/2978809
flutter Dynamic updates
flutter OtaUpdate CodePush
https://blog.csdn.net/weixin_30512027/article/details/85772097
https://msd.misuland.com/pd/3127746505234976194
https://my.oschina.net/wupeilin/blog/3035732
唯一找到的 APP热更新资料
https://github.com/dengyin2000/dynamic_widget
Code Push/Hot update
我们现在使用flutter更新版本
下载apk:
引入
dependencies:
flutter_downloader: 1.1.3
taskId = await FlutterDownloader.enqueue(
url: url,//服务端提供apk文件下载路径
savedDir: (await getExternalStorageDirectory()).path.toString(),//本地存放路径
fileName: “xiangta_” + netCode + “.apk”,//存放文件名
showNotification: false,//是否显示在通知栏
openFileFromNotification: false,//是否在通知栏可以点击打开此文件
);
//taskId为任务id (与完成下载的文件成一一对应)open是执行打开 打开需要任务id 相信你已经找到方向了
FlutterDownloader.registerCallback((taskId, status, progress) {
if (status == DownloadTaskStatus.complete) {
//下载完成
FlutterDownloader.open(taskId:taskId));
} else if (status == DownloadTaskStatus.failed) {
//下载出错
}
});
———
一、使用FlutterDownloader下载 二、open_file打开文件自带安装(FlutterDownloader自带打开文件,但不能打开app不知道为啥) 代码: 1、下载监听 FlutterDownloader.registerCallback((id, status, progress) { print( 'Download task ($id) is in status ($status) and process ($progress)'); if (status == DownloadTaskStatus.complete) { OpenFile.open(_localPath); FlutterDownloader.open(taskId: id); } }); 2、下载 final taskId = await FlutterDownloader.enqueue( url: url, savedDir: _localPath, showNotification: true, // show download progress in status bar (for Android) openFileFromNotification: true, // click on notification to open downloaded file (for Android) ); final tasks = await FlutterDownloader.loadTasks();