checkVersion method
Implementation
@override
Future<VersionStatus?> checkVersion(PackageInfo packageInfo) async {
final response = await http.get(
apiUrl,
headers: {
'X-App-Version': packageInfo.version,
'X-Platform': _getPlatform(),
...?additionalHeaders,
},
);
if (response.statusCode != 200) {
throw HttpException('HTTP error: ${response.statusCode}');
}
final latestVersion = response.headers['x-latest-app-version'];
final forceUpdate = response.headers['x-force-update']?.toLowerCase() == 'true';
final note = response.headers['x-release-notes'];
final storeUrl = response.headers['x-store-url'];
if (latestVersion == null) {
throw Exception('Header "x-latest-app-version" missing in response');
}
if (_compareVersions(packageInfo.version, latestVersion) >= 0) {
// Ya está actualizado, no hay actualización disponible.
return null;
}
return VersionStatus(
localVersion: packageInfo.version,
storeVersion: latestVersion,
appStoreLink: storeUrl ?? '',
releaseNotes: note,
forceUpdate: forceUpdate,
);
}