Flutter技术问题:如何通过应用ID获取Google Play商店最新版本号
获取Google Play商店最新版本号的可行方案
官方可靠方案:Google Play Developer API
这是Google提供的官方接口,能精准获取你自己应用的各渠道(生产、测试等)最新版本号,前提是你是该应用的开发者:
- 登录Google Cloud控制台,创建新项目并启用「Google Play Android Developer API」
- 在Google Play开发者后台的「API访问」页面,关联你的Cloud项目,创建服务账号并下载JSON密钥
- 在代码中通过服务账号签名请求,调用
edits.tracks.get接口,传入应用ID和目标渠道(如production),即可获取对应渠道的最新版本信息
非官方方案:网页内容解析
如果只是想获取公开的应用版本号,可以通过请求Google Play应用详情页的源码,提取版本信息。这种方法无需开发者权限,但稳定性依赖页面结构,且需遵守Google服务条款:
示例Flutter代码(适配你的package_info_plus使用场景):
import 'package:http/http.dart' as http; import 'dart:regexp'; Future<String?> fetchPlayStoreLatestVersion(String appId) async { try { final uri = Uri.parse('https://play.google.com/store/apps/details?id=$appId&hl=en'); final response = await http.get(uri); if (response.statusCode == 200) { // 匹配页面中的当前版本号(注意:页面结构可能变更,需定期验证正则) final versionRegex = RegExp(r'Current Version</div><span class="htlgb"><div class="IQ1z0d"><span class="htlgb">([0-9.]+)</span>'); final match = versionRegex.firstMatch(response.body); return match?.group(1); } } catch (e) { // 处理网络错误或解析失败 print('Failed to fetch Play Store version: $e'); } return null; }
注意:Google Play页面结构可能随时调整,正则表达式需要对应更新;同时控制请求频率,避免触发反爬机制导致IP被限制。
第三方工具/SDK(谨慎选择)
部分Flutter第三方包(如version_checker)封装了版本检测逻辑,内部通常也是基于网页解析或第三方服务。使用前务必评估包的维护状态和隐私政策,避免引入不必要的风险。
内容的提问来源于stack exchange,提问作者Leong
相关产品推荐
相关产品推荐

