feat:新增注释

This commit is contained in:
TangJo 2026-03-26 10:23:24 +08:00
parent c08d5b58eb
commit 42d12212e4
1 changed files with 40 additions and 1 deletions

View File

@ -29,6 +29,7 @@ class ShellUpgradeReleaseConfig {
);
}
/// Map `data.config.upgrade` JSON
static ShellUpgradeReleaseConfig? fromDynamic(dynamic value) {
if (value == null) {
return null;
@ -67,7 +68,12 @@ class ShellUpgradeReleaseConfig {
}
}
/// JSON
/// JSON
///
///
/// 1. `success/code/msg/data`
/// 2. `data.config` JSON
/// 3. `data.config` `upgrade` `config`
class ShellUpgradeConfig {
final bool? success;
final String? responseCode;
@ -132,6 +138,10 @@ class ShellUpgradeConfig {
bool get hasStructuredPayload => upgrade != null || config != null;
/// 使 `upgrade.version` buildNumber
///
/// `true`
///
bool shouldOfferUpgrade({required int localVersion}) {
final remoteVersion = upgrade?.version;
if (remoteVersion == null) {
@ -140,6 +150,9 @@ class ShellUpgradeConfig {
return remoteVersion > localVersion;
}
/// `data.config`
/// - `upgrade`
/// - `config` initialUrl / preferredOrientations
factory ShellUpgradeConfig.fromJson(Map<String, dynamic> json) {
final data = json['data'];
final dataMap = data is Map<String, dynamic>
@ -227,6 +240,7 @@ bool? _readShellUpgradeBool(dynamic value) {
return null;
}
/// `data.config` JSON
Map<String, dynamic>? _readShellUpgradeEmbeddedConfig(String? value) {
if (value == null || value.isEmpty) {
return null;
@ -255,11 +269,17 @@ class ShellUpgradeService {
Future<int?> Function()? _localBuildNumberResolver;
///
///
/// URL
void setupConfigUrl(String? configUrl) {
_configUrl = configUrl?.trim();
}
///
///
/// +
/// `initialUrl``preferredOrientations`
/// `core_app.dart` reload
Future<void> checkVersion(
BuildContext context, {
bool showNoUpdateToast = false,
@ -292,11 +312,16 @@ class ShellUpgradeService {
ShellUpgradeConfig remoteConfig,
) {
return (int upType) async {
//
//
final upgradeVersion = _convertToAppUpgradeVersion(remoteConfig);
if (upgradeVersion == null) {
return null;
}
// WebShell
//
// buildNumber 退
final localBuildNumber = await _resolveLocalBuildNumber();
if (localBuildNumber == null) {
debugPrint('获取 WebShell 本地版本号失败,回退到升级插件内部版本比较');
@ -312,6 +337,7 @@ class ShellUpgradeService {
};
}
/// 使 resolver退 buildNumber
Future<int?> _resolveLocalBuildNumber() async {
final resolver = _localBuildNumberResolver;
if (resolver != null) {
@ -332,6 +358,7 @@ class ShellUpgradeService {
_localBuildNumberResolver = resolver;
}
/// JSON
Future<ShellUpgradeConfig?> _fetchConfig(String url) async {
try {
final uri = Uri.tryParse(url);
@ -352,6 +379,10 @@ class ShellUpgradeService {
}
}
///
///
/// `upgrade` `config`
///
ShellUpgradeConfig? _parseConfigString(String content) {
try {
final dynamic jsonMap = jsonDecode(content);
@ -372,6 +403,14 @@ class ShellUpgradeService {
}
/// JSON
///
///
/// - `upgrade.versionName` -> `versionName`
/// - `upgrade.version` -> `versionBuildNumber`
/// - `upgrade.isForce` -> `isForce`
/// - `describe/upgrade.remark` -> `updateContent`
/// - `installOssUrl/upgrade.filePath` ->
/// - `upgrade.fileSize`(KB) -> `apkSize`(Byte)
AppUpgradeVersion? _convertToAppUpgradeVersion(ShellUpgradeConfig config) {
if (config.version == null || config.versionName == null) {
return null;