处理辅助函数

This commit is contained in:
DESKTOP-I3JPKHK\wy 2025-12-11 17:05:48 +08:00
parent e30aef8b44
commit af52743e94
2 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,80 @@
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:yx_app_upgrade_flutter/app_upgrade_simple.dart';
import 'package:yx_app_upgrade_flutter/models/app_upgrade_version.dart';
/// App
class UpgradeAuxiliaryUtils {
/// 1:, 2:IOS
late final int? deviceType;
///
bool _updateLater = false;
///
bool completed = false;
///
AppUpgradeVersion? _lastVersion;
UpgradeAuxiliaryUtils._() {
if (Platform.isAndroid) {
deviceType = 1;
} else if (Platform.isIOS) {
deviceType = 2;
} else {
deviceType = null;
}
}
static final UpgradeAuxiliaryUtils _instance = UpgradeAuxiliaryUtils._();
/// UpgradeService
static UpgradeAuxiliaryUtils get instance => _instance;
///
Future<void> initiateVersionCheck(
BuildContext context, {
required Future<AppUpgradeVersion?> Function(int upType) future,
UpgradeConfig? config,
bool? showNoUpdateToast,
bool? autoInstall,
VoidCallback? onComplete,
VoidCallback? onUpdateLater,
}) async {
if (deviceType == null || completed) return;
completed = true;
await AppUpgradeSimple.instance.checkUpdate(
context: context,
future: () async {
final result = await future(deviceType!);
// "稍后更新"
if (_updateLater &&
_lastVersion != null &&
result != null &&
result.versionName == _lastVersion!.versionName &&
result.versionBuildNumber == _lastVersion!.versionBuildNumber) {
return null;
}
return _lastVersion = result;
},
showNoUpdateToast: showNoUpdateToast,
autoInstall: autoInstall,
onComplete: () {
//
debugPrint("更新插件执行完成....:");
completed = false;
onComplete?.call();
},
onUpdateLater: () {
_updateLater = true;
onUpdateLater?.call();
},
config: config ?? (kDebugMode ? UpgradeConfig.development : UpgradeConfig.production),
);
}
}

View File

@ -2,3 +2,4 @@ library;
export 'package:yx_app_upgrade_flutter/app_upgrade_simple.dart';
export 'package:yx_app_upgrade_flutter/models/index.dart';
export 'package:yx_app_upgrade_flutter/upgrade_auxiliary_utils.dart';