Flutter: как получить номер последней версии приложения из Google Play Store

Я работаю над проектом, который требует от меня сравнения версии приложения. В настоящее время я использую package_info_plus, чтобы получить текущую версию приложения, но мне все еще не удается получить последнюю версию из Play Store. Могу ли я каким-либо образом прочитать номер последней версии из Play Store, используя мой идентификатор приложения?

вы используете какой-то бэкэнд? API? у меня есть лучший подход для этого!

Shoua Ul Qammar 21.06.2024 09:44

@ShouaUlQammar сейчас нет, не поделитесь своим подходом?

Leong 21.06.2024 09:53
0
2
111
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

я всегда добавляю API конфигурации, где я возвращаю объект для последней версии, где одно свойство определяет его последнюю версию, а второе определяет, требуется ли обновление или нет

Ответ API выглядит так

{ "последняя версия": "1.2.3", «isUpdateRequired»: правда }

Упомянутый Config API?

Leong 21.06.2024 09:59

извини, я не понял твоего грубого приятеля!, пожалуйста, спрашивай четко

Shoua Ul Qammar 21.06.2024 10:02

Вы можете использовать flutter_app_version_checker: ^0.3.2 для получения названия версии приложения, версии, доступности обновлений и многого другого. для получения дополнительной информации посетите https://pub.dev/packages/flutter_app_version_checker

  _checker.checkUpdate().then((value) {
    print(value.canUpdate); //return true if update is available
    print(value.currentVersion); //return current app version
    print(value.newVersion); //return the new app version
    print(value.appURL); //return the app url
    print(value.errorMessage); //return error message if found else it will return null
});

только что попробовал этот пакет на своем прототипе, мое приложение вылетает после добавления этого пакета в pubspec.yaml

Leong 21.06.2024 11:56

Используйте следующую функцию, чтобы очистить версию из списка страниц:

Future<String> _checkPlayStore(String packageName) async {
  final uri =
      Uri.https("play.google.com", "/store/apps/details", {"id": packageName});
  late String latestVersion;
  final response = await http.get(uri);
  if (response.statusCode != 200) {
    throw HttpException(
        "Can't get the version number, check that the package name is correct.");
  } else {
    latestVersion =
        RegExp(r',\[\[\["([0-9,\.]*)"]],').firstMatch(response.body)!.group(1)!;
  }
  return latestVersion;
}
Ответ принят как подходящий

Я попробовал получить версию приложения из магазина с помощью другого пакета (new_version_plus), и это работает:

final newVersion = NewVersionPlus();
var status = await newVersion.getVersionStatus();
var storeVersion = status?.storeVersion;

Другие вопросы по теме