您的位置:首页 > 教育 > 锐评 > flutter 更新apk

flutter 更新apk

2024/10/6 2:23:06 来源:https://blog.csdn.net/weixin_52904103/article/details/140876782  浏览:    关键词:flutter 更新apk
import 'package:path_provider/path_provider.dart';   //app_installer: ^1.0.0
import 'package:app_installer/app_installer.dart';    //path_provider//查询是否更新Future<void> ifUpdate(BuildContext buildContext) async {String jsonFlag = await LocalStorage.get("apkJson");var s = jsonFlag;var dio = Dio();final response = await dio.get(s);print(response.data);if(response.data != null){setState(() {});apkJson = response.data;   //json格式{"version":"3.0.1","outputFile":"http://192.168.200.201/test/news.apk","versionName":"ydhl"}}PackageInfo packageInfo = await PackageInfo.fromPlatform();//如果你设置的版本号 于你本机上的App的版本号 不一致 弹出下载框if (apkJson["version"] != "packageInfo.version") {print(packageInfo.version);Msg.dlg(context: context,title: "版本不是最新版,请确定是否更新").then((value)=>{if(value == ""){_installApk(apkJson["outputFile"])// download2()}});}else{toast("已是最新版");}}
/// 下载安卓更新包Future downloadAndroid(String url) async {/// 创建存储文件Directory storageDir = await getExternalStorageDirectory();String storagePath = storageDir.path;final directory = await getTemporaryDirectory();File file = new File("${storageDir.path}/ydhl.apk");if (!file.existsSync()) {file.createSync();}try {/// 发起下载请求Response response = await Dio().download(url,file.path,options: Options(followRedirects: false,),onProgress: (int count, int total){if (total != -1) {//更新界面进度_value = count / total;print("------"+_value.toString());setState(() {_value =_value;});}});// file.writeAsBytesSync(response.data);return file;} catch (e) {showError("下载失败");debugPrint(e.toString());setState(() {});}}
/// 安装apkFuture _installApk(String url) async {File _apkFile = await downloadAndroid(url);String _apkFilePath = _apkFile.path;if (_apkFilePath.isEmpty) {print("make sure the apk file is set");return;}AppInstaller.installApk(_apkFilePath).then((ell){toast("下载成功");}).catchError((e){showError("install apk error: $e");});}

 更新界面

与界面都在stack中

Visibility(visible: (_value*100).toInt() != 0 && (_value*100).toInt() != 100,child: Stack(children: [Container(height: double.infinity,width: double.infinity,color: Colors.black12,),Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.center,children: [Container(child: Text("下载中...",style: TextStyle(color: Colors.blue,decoration: TextDecoration.none),),),SizedBox(height: 10,),SizedBox(height: 20,width: 300,child: ClipRRect(borderRadius: const BorderRadius.all(Radius.circular(100)),child: LinearProgressIndicator(value: _value,backgroundColor: const Color(0xFF7E7F88).withOpacity(0.15),valueColor: const AlwaysStoppedAnimation<Color>(Colors.green),),),),],),),],),),

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com