初始化
This commit is contained in:
39
lib/widgets/version/check_version_update.dart
Normal file
39
lib/widgets/version/check_version_update.dart
Normal file
@@ -0,0 +1,39 @@
|
||||
import 'package:app/core/config/global.dart';
|
||||
import 'package:app/core/event/event_bus.dart';
|
||||
import 'package:app/core/event/global_event.dart';
|
||||
import 'package:app/core/utils/system.dart';
|
||||
import 'package:app/data/api/common_api.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
|
||||
///检查版本更新
|
||||
void checkUpdate() async {
|
||||
PackageInfo packageInfo = await PackageInfo.fromPlatform();
|
||||
var versionRes = await getAppVersionApi(isIos: !isAndroid());
|
||||
//判断版本是不是小于最低版本,如果不是,不弹更新
|
||||
bool isMin = _compareVersions(packageInfo.version, versionRes.lowVersion) == -1;
|
||||
if (!isMin) {
|
||||
return;
|
||||
}
|
||||
Future.delayed(const Duration(seconds: 2), () async {
|
||||
EventBus().publish(VersionUpdateEvent(versionRes));
|
||||
});
|
||||
}
|
||||
|
||||
///比较版本号
|
||||
/// 1:表示当前版本号比传入的版本号高
|
||||
/// -1:表示当前版本号比传入的版本号低
|
||||
/// 0 表示版本号相同
|
||||
int _compareVersions(String version1, String version2) {
|
||||
List<String> v1Parts = version1.split('.');
|
||||
List<String> v2Parts = version2.split('.');
|
||||
int length = v1Parts.length > v2Parts.length ? v1Parts.length : v2Parts.length;
|
||||
|
||||
for (int i = 0; i < length; i++) {
|
||||
int v1Part = i < v1Parts.length ? int.tryParse(v1Parts[i]) ?? 0 : 0;
|
||||
int v2Part = i < v2Parts.length ? int.tryParse(v2Parts[i]) ?? 0 : 0;
|
||||
|
||||
if (v1Part > v2Part) return 1;
|
||||
if (v1Part < v2Part) return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user