#flutter
#flutter
Вопрос:
Я хочу проверить последнюю версию приложения в магазине Google Play и обновить приложение, если доступна новая версия. Ниже приведен код для проверки текущей версии.
import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;
class GetLatestAppVersion {
http.Client client = http.Client() ;
bool success;
String message;
String version;
String minAppVersion;
String about;
Future<void> call() async {
try {
var response = await client.get("https://play.google.com/store/apps/details?id=*********",
);
var result = jsonDecode(response.body);
if (result['success'] != null) {
success = result['success'];
message = result['message'];
if (response.statusCode == 200) {
version = result["latestAppVersion"]["Version"];
minAppVersion = result["latestAppVersion"]["MinAppVersion"];
about = result["latestAppVersion"]["About"];
}
else
print(response.statusCode);
}
} catch(e)
print(e)
}
}
Когда я запускаю этот код, код состояния отображается как 200, но я получаю следующую ошибку:
Unhandled Exception: FormatException: Unexpected character (at character 1)
[ ] E/flutter ( 988): <!doctype html><html lang="en" dir="ltr"><head><base
href="https://play.goo...
Где я ошибаюсь?
Комментарии:
1. Потому что вы пытаетесь декодировать html-ответ. URL не отвечает JSON, он возвращает содержимое html
2. Итак, что мне делать вместо этого?
3. Кажется, вы твердо понимаете, как будет выглядеть ответ, который вы ожидаете . Кто бы вам это ни сказал, перейдите к этому источнику и спросите, что вам нужно сделать, чтобы получить этот ответ.
4. @ShivanshiVerma вместо этого вы можете использовать этот пакет pub.dev/packages/in_app_update он проверяет наличие нового обновления приложения