You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter应用中获取Google Play商店的发布与更新日期?

解决方案:获取Google Play商店的应用发布/更新日期

package_info_plus仅能读取本地安装包的元数据,无法获取Google Play商店的线上数据,以下是几种可行方案:

1. 使用Google Play Android Developer API(官方可靠方案)

这是最稳定的实现方式,但需要配置开发者权限:

  • 前往Google Cloud Console,启用Google Play Android Developer API
  • 创建服务账号,下载JSON格式的密钥文件
  • 在Google Play Console中,将服务账号添加为项目成员,授予「查看应用信息」的权限
  • 在Flutter项目中借助http库调用API,获取应用版本历史与基础信息:
    • 先通过服务账号生成OAuth2访问令牌(可使用googleapis_auth库简化流程)
    • 调用tracks.list接口获取各版本的更新时间,最早的版本时间即为发布日期,最新版本时间即为更新日期
    • 示例代码片段:
      import 'package:http/http.dart' as http;
      import 'dart:convert';
      
      Future<void> fetchPlayStoreDates(String packageName, String token) async {
        final response = await http.get(
          Uri.parse('https://androidpublisher.googleapis.com/androidpublisher/v3/applications/$packageName/tracks'),
          headers: {'Authorization': 'Bearer $token'},
        );
        if (response.statusCode == 200) {
          final data = jsonDecode(response.body);
          // 解析tracks中的versionCodes和releaseTime,提取最早/最新日期
          // 具体逻辑需根据API返回结构调整
        }
      }
      

2. 远程配置+手动维护(简单易实现)

如果不想配置复杂的API,可通过远程配置工具存储日期并手动维护:

  • 集成Firebase Remote Config(或其他同类服务)到Flutter项目
  • 在远程配置后台添加两个参数:release_date(格式如「2023-01-01」)和update_date
  • 每次应用在Play商店更新后,手动更新远程配置中的日期值
  • 应用启动时拉取远程配置,在关于页面展示:
    import 'package:firebase_remote_config/firebase_remote_config.dart';
    
    Future<void> initRemoteConfig() async {
      final remoteConfig = FirebaseRemoteConfig.instance;
      await remoteConfig.setConfigSettings(RemoteConfigSettings(
        fetchTimeout: const Duration(minutes: 1),
        minimumFetchInterval: const Duration(hours: 6),
      ));
      await remoteConfig.fetchAndActivate();
      final releaseDate = remoteConfig.getString('release_date');
      final updateDate = remoteConfig.getString('update_date');
      // 展示日期
    }
    

3. 网页抓取(不推荐)

可爬取Google Play应用详情页的HTML内容解析日期,但Play页面结构随时可能变化,且可能违反Google服务条款:

  • 使用http库获取页面内容,用html库解析DOM
  • 示例代码片段:
    import 'package:http/http.dart' as http;
    import 'package:html/parser.dart' as parser;
    import 'package:html/dom.dart' as dom;
    
    Future<void> scrapePlayStoreDates(String packageName) async {
      final response = await http.get(Uri.parse('https://play.google.com/store/apps/details?id=$packageName'));
      if (response.statusCode == 200) {
        final document = parser.parse(response.body);
        // 查找包含日期的元素(注意:类名可能随时变化)
        final dateElements = document.querySelectorAll('.xg1aie');
        if (dateElements.length >= 2) {
          final releaseDate = dateElements[0].text;
          final updateDate = dateElements[1].text;
          // 展示日期
        }
      }
    }
    

内容的提问来源于stack exchange,提问作者Ahmed Ha. K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 09:02:20