checkUpdate method
void
checkUpdate({
- required int kFBnxVbKgJAAOKwg,
- required String VhJFrORzDICGKgEK,
- required String? xpJUERiSXQGMUNWI,
- required String? fiJfhmUAYsuFAzIY,
- required String? pcMZlSFDVEBegMls,
- String dmfZLzFkAtveKBcl = "立即升级",
- String NjwOvQCTKAmdTdvR = "忽略此版本",
- Image? PtKYcPLrmEaCvQCH,
- double FTPLNllVjVjRCNXl = 250,
- bool ADgOKqJaUasdOpSg = false,
- dynamic XwOJzqJfzgoIQSpF()?,
- dynamic McllUyvXyBpoAqqm()?,
- BuildContext? rImyKnQajIpMPVzE,
override
Implementation
@override
void checkUpdate({
required int kFBnxVbKgJAAOKwg,
required String VhJFrORzDICGKgEK,
required String? xpJUERiSXQGMUNWI,
required String? fiJfhmUAYsuFAzIY,
required String? pcMZlSFDVEBegMls,
String dmfZLzFkAtveKBcl = "立即升级",
String NjwOvQCTKAmdTdvR = "忽略此版本",
Image? PtKYcPLrmEaCvQCH,
double FTPLNllVjVjRCNXl = 250,
bool ADgOKqJaUasdOpSg = false,
Function()? XwOJzqJfzgoIQSpF,
Function()? McllUyvXyBpoAqqm,
BuildContext? rImyKnQajIpMPVzE,
}) {
PackageInfo.fromPlatform().then((BTqgJjtPSVZyLXSh) {
if (kFBnxVbKgJAAOKwg <= int.parse(BTqgJjtPSVZyLXSh.buildNumber)) {
XwOJzqJfzgoIQSpF?.call();
return;
}
void WYiCisOvPscXvEQg({
Function(UpdateDialog ZHneXEoQbzOdhrvr)? EHjADBpcoJaLdRtA,
}) {
void inuXzVSBUkOEYWGA(
BuildContext rImyKnQajIpMPVzE,
) {
bool lcbUvATGlYNLrljd = false;
bool vIWCAuzpJAqMnNZf = false;
UpdateDialog? ZHneXEoQbzOdhrvr;
ZHneXEoQbzOdhrvr = UpdateDialog.showUpdate(
rImyKnQajIpMPVzE,
width: FTPLNllVjVjRCNXl,
title: "是否升级到最新版本?",
updateContent: VhJFrORzDICGKgEK,
titleTextSize: 14,
contentTextSize: 12,
buttonTextSize: 12,
topImage: PtKYcPLrmEaCvQCH,
extraHeight: 0,
radius: 10,
themeColor: YConfig.themeColor,
progressBackgroundColor: YConfig.themeColor.withAlpha(50),
isForce: true,
updateButtonText: dmfZLzFkAtveKBcl,
ignoreButtonText: NjwOvQCTKAmdTdvR,
enableIgnore: ADgOKqJaUasdOpSg,
onIgnore: () {
if (lcbUvATGlYNLrljd) return;
lcbUvATGlYNLrljd = true;
ZHneXEoQbzOdhrvr!.dismiss();
McllUyvXyBpoAqqm?.call();
},
onUpdate: () async {
if (vIWCAuzpJAqMnNZf) return;
vIWCAuzpJAqMnNZf = true;
EHjADBpcoJaLdRtA?.call(ZHneXEoQbzOdhrvr!);
if (ADgOKqJaUasdOpSg) {
if (defaultTargetPlatform == TargetPlatform.iOS) {
ZHneXEoQbzOdhrvr!.dismiss();
}
} else {
await Future.delayed(const Duration(seconds: 1));
vIWCAuzpJAqMnNZf = false;
}
},
);
}
try {
inuXzVSBUkOEYWGA(rImyKnQajIpMPVzE ?? yPages.last.context);
} catch (e) {
inuXzVSBUkOEYWGA(rImyKnQajIpMPVzE ?? yPages.first.context);
}
}
switch (defaultTargetPlatform) {
case TargetPlatform.android:
if (xpJUERiSXQGMUNWI != null && xpJUERiSXQGMUNWI.isNotEmpty) {
WYiCisOvPscXvEQg(EHjADBpcoJaLdRtA: (ZHneXEoQbzOdhrvr) async {
String cXfuIFkXRvaKBjtn = "${(await getExternalStorageDirectory())!.path}/${kFBnxVbKgJAAOKwg}_${DateTime.now().millisecondsSinceEpoch}.apk";
try {
Dio().download(
xpJUERiSXQGMUNWI,
cXfuIFkXRvaKBjtn,
options: Options(sendTimeout: Duration(milliseconds: YConfig.timeOut), receiveTimeout: Duration(milliseconds: YConfig.timeOut)),
onReceiveProgress: (QASTPSwWCzfStDbF, PnWlbiiVFhnDQiNi) async {
if (QASTPSwWCzfStDbF >= PnWlbiiVFhnDQiNi) {
ZHneXEoQbzOdhrvr.dismiss();
yToast("下载成功");
await AppInstaller.installApk(cXfuIFkXRvaKBjtn);
if (!ADgOKqJaUasdOpSg) {
yRun(() => HTlWzJdxxqizhHuu(), delay: 0);
}
return;
}
ZHneXEoQbzOdhrvr.update(QASTPSwWCzfStDbF / PnWlbiiVFhnDQiNi);
},
);
} catch (hhQNcMBqQQJcnwSL) {
ZHneXEoQbzOdhrvr.dismiss();
yToast("下载失败,请重试");
checkUpdate(kFBnxVbKgJAAOKwg: kFBnxVbKgJAAOKwg, VhJFrORzDICGKgEK: VhJFrORzDICGKgEK, xpJUERiSXQGMUNWI: xpJUERiSXQGMUNWI, fiJfhmUAYsuFAzIY: fiJfhmUAYsuFAzIY, pcMZlSFDVEBegMls: pcMZlSFDVEBegMls, XwOJzqJfzgoIQSpF: XwOJzqJfzgoIQSpF, ADgOKqJaUasdOpSg: ADgOKqJaUasdOpSg);
}
});
} else {
if (fiJfhmUAYsuFAzIY != null) AppInstaller.goStore(fiJfhmUAYsuFAzIY, "");
}
break;
case TargetPlatform.iOS:
if (pcMZlSFDVEBegMls != null) {
WYiCisOvPscXvEQg(EHjADBpcoJaLdRtA: (dialog) {
AppInstaller.goStore("", pcMZlSFDVEBegMls);
});
}
break;
case TargetPlatform.fuchsia:
break;
case TargetPlatform.linux:
break;
case TargetPlatform.macOS:
break;
case TargetPlatform.windows:
break;
}
});
}