static void showUpdateDialog(String version, String url, String content,
bool isForceUpgrade, String createTime,
{String? md5Code, Function(bool)? callback}) {
GlobalKey<UpdateDialogState> _dialogKey = new GlobalKey();
showDialog(
barrierColor: Color(0xb2000000),
barrierDismissible: false,
context: Get.context!,
builder: (_) => WillPopScope(
onWillPop: () async {
return Future.value(!isForceUpgrade);
},
child: UpdateDialog(
key: _dialogKey,
version: version,
content: content,
createTime: createTime,
isForceUpgrade: isForceUpgrade,
onClickWhenDownload: (_msg) {
ToastUtil.error(_msg);
//提示不要重复下载
},
onClickWhenNotDownload: () async {
if (!await Permissions.checkPermission(
Get.context!, Permission.storage.value)) {
ToastUtil.success('请先开启存储权限');
return;
}
String fileName = getFlieName(url);
Directory? storageDir = await getExternalStorageDirectory();
String storagePath = storageDir?.path ?? "";
String path = '$storagePath/${fileName}';
File file = File(path);
final exist = await file.exists();
if (exist) {
print('zai');
final c = await file.length();
print(c);
if (c != 0) {
final sdkCode = await LoacalStorage().getJSON('code');
print(sdkCode == md5Code);
if (sdkCode == md5Code) {
ToastUtil.success('已下载,去安装',
position: ToastPosition.center);
Future.delayed(Duration(seconds: 1), () {
print(path);
InstallPlugin.installApk(path, 'com.topzhiyin.tongpin')
.then((result) {
print('install apk $result');
}).catchError((error) {
print('install apk error: $error');
});
});
} else {
await DioUtil.getInstance()!.download(
url,
path,
onError: (s, r) {
//ToastUtil.error(r!);
callback?.call(false);
},
onProgress: (count, total) async {
_dialogKey.currentState?.progress = count / total;
if (count == total) {
print(path);
final code = EncryptUtil.file2md5(File(path));
LoacalStorage().setJSON('code', code); //2022-05-29
callback?.call(false);
InstallPlugin.installApk(
path, 'com.topzhiyin.tongpin')
.then((result) {
print('install apk $result');
}).catchError((error) {
print('install apk err
flutter更新弹窗
最新推荐文章于 2024-05-24 18:39:10 发布