Commit c0a638b5 by tanghuan

优化版本检测

1 parent 2d28f8c5
...@@ -1310,10 +1310,10 @@ class WebCubit extends Cubit<WebState> with WidgetsBindingObserver { ...@@ -1310,10 +1310,10 @@ class WebCubit extends Cubit<WebState> with WidgetsBindingObserver {
bool _hasBeenResumed = false; bool _hasBeenResumed = false;
/// 版本检测并发控制标志 /// 版本检测并发控制标志
bool _isCheckingVersionOfH5 = false; bool _isCheckingVersion = false;
/// H5资源已下载标志(本次生命周期内) /// H5资源已下载标志(本次生命周期内)
bool _hasDownloadedH5 = false; // bool _hasDownloadedH5 = false;
/// APP版本检测上次执行时间(2小时内只执行一次) /// APP版本检测上次执行时间(2小时内只执行一次)
DateTime? _lastAppVersionCheckTime; DateTime? _lastAppVersionCheckTime;
...@@ -1324,16 +1324,18 @@ class WebCubit extends Cubit<WebState> with WidgetsBindingObserver { ...@@ -1324,16 +1324,18 @@ class WebCubit extends Cubit<WebState> with WidgetsBindingObserver {
/// 检测或下载中时不重复处理 /// 检测或下载中时不重复处理
/// ///
Future<void> _checkVersionUpgrade() async { Future<void> _checkVersionUpgrade() async {
if (_isCheckingVersionOfH5 || _hasDownloadedH5) { if (_isCheckingVersion /*|| _hasDownloadedH5*/) {
return; return;
} }
_isCheckingVersionOfH5 = true; _isCheckingVersion = true;
try { try {
var curVersion = getIt.get<SharedPreferences>().getString(Constant.h5VersionKey) ?? Constant.h5Version; var curVersion = getIt.get<SharedPreferences>().getString(Constant.h5VersionKey) ?? Constant.h5Version;
var versionConfig = await _getVersionConfig(); var versionConfig = await _getVersionConfig();
var configVersion = versionConfig['version'] as String; var configVersion = versionConfig['version'] as String;
var downloadUrl = versionConfig['zip'] as String; var downloadUrl = versionConfig['zip'] as String;
var appversionCheck = versionConfig['appversionCheck'] as String; var appversionCheck = versionConfig['appversionCheck'] as String;
var appversionAndroid = versionConfig['appversionAndroid'] as String; var appversionAndroid = versionConfig['appversionAndroid'] as String;
var appversionIos = versionConfig['appversionIos'] as String; var appversionIos = versionConfig['appversionIos'] as String;
...@@ -1346,6 +1348,11 @@ class WebCubit extends Cubit<WebState> with WidgetsBindingObserver { ...@@ -1346,6 +1348,11 @@ class WebCubit extends Cubit<WebState> with WidgetsBindingObserver {
emit(state.copyWith(suggestAppUpgrade: true)); emit(state.copyWith(suggestAppUpgrade: true));
} }
_lastAppVersionCheckTime = now; _lastAppVersionCheckTime = now;
// 重置标志
_isCheckingVersion = false;
// 提示了APP升级后,不再进行H5版本检测
return;
} }
} }
...@@ -1354,16 +1361,16 @@ class WebCubit extends Cubit<WebState> with WidgetsBindingObserver { ...@@ -1354,16 +1361,16 @@ class WebCubit extends Cubit<WebState> with WidgetsBindingObserver {
final capturedConfigVersion = configVersion; final capturedConfigVersion = configVersion;
_downloadH5Zip(capturedConfigVersion, downloadUrl).then((_) { _downloadH5Zip(capturedConfigVersion, downloadUrl).then((_) {
_setH5Version(capturedConfigVersion); _setH5Version(capturedConfigVersion);
_hasDownloadedH5 = true; // _hasDownloadedH5 = true;
emit(state.copyWith(suggestUpgrade: true)); emit(state.copyWith(suggestUpgrade: true));
}).catchError((e) { }).catchError((e) {
debugPrint('后台H5资源下载失败 $e'); debugPrint('后台H5资源下载失败 $e');
}).whenComplete(() { }).whenComplete(() {
_isCheckingVersionOfH5 = false; _isCheckingVersion = false;
}); });
} else { } else {
// 不需要下载时,立即重置标志 // 不需要下载时,立即重置标志
_isCheckingVersionOfH5 = false; _isCheckingVersion = false;
} }
} catch (e) { } catch (e) {
debugPrint('后台H5版本检测失败 $e'); debugPrint('后台H5版本检测失败 $e');
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!