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

.NET Maui中如何获取Google Play商店当前Android应用版本

在.NET Maui中获取Google Play应用版本的可行方案

官方可靠方案:使用Google Play Developer API

如果你是目标应用的开发者,这是最稳定的实现方式,需先完成前置准备:

  1. 在Google Cloud Console创建项目,启用Google Play Developer API
  2. 生成服务账号密钥(JSON格式),并在Google Play Console中为该账号授予对应应用的访问权限

在.NET Maui项目中安装Google.Apis.AndroidPublisher.v3 NuGet包,通过以下代码获取版本信息:

using Google.Apis.AndroidPublisher.v3;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;

// 加载服务账号密钥文件
var credential = GoogleCredential.FromFile("service-account-key.json")
    .CreateScoped(AndroidPublisherService.Scope.Androidpublisher);

// 初始化API服务实例
var publisherService = new AndroidPublisherService(new BaseClientService.Initializer
{
    HttpClientInitializer = credential,
    ApplicationName = "YourMauiAppName"
});

// 创建编辑会话(API要求必须通过编辑会话访问应用详情)
var editInsertRequest = publisherService.Edits.Insert(null, "com.your.app.package");
var edit = await editInsertRequest.ExecuteAsync();

// 获取应用详情
var detailsRequest = publisherService.Edits.Details.Get(edit.Id, "com.your.app.package");
var appDetails = await detailsRequest.ExecuteAsync();

// 提取版本号
var currentVersionName = appDetails.VersionName;
var currentVersionCode = appDetails.VersionCode;

// 提交编辑会话释放资源
await publisherService.Edits.Commit(edit.Id, "com.your.app.package").ExecuteAsync();

非官方方案:HTML页面解析(适用于第三方应用)

如果要获取非自身开发的应用版本,只能通过解析Google Play网页内容实现,但需注意页面结构随时可能变更,且存在反爬拦截机制。

实现步骤:

  1. 安装HtmlAgilityPack NuGet包用于HTML解析
  2. 使用HttpClient模拟浏览器请求,设置合法请求头避免被识别为爬虫

代码示例:

using HtmlAgilityPack;
using System.Net.Http.Headers;

var httpClient = new HttpClient();
// 设置模拟浏览器的请求头
httpClient.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36");
httpClient.DefaultRequestHeaders.Accept.ParseAdd("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");

var targetAppUrl = "https://play.google.com/store/apps/details?id=com.target.app.package";
var htmlContent = await httpClient.GetStringAsync(targetAppUrl);

var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(htmlContent);

// 注意:Google Play页面元素类名可能随时更新,需根据实际页面结构调整XPath
var versionNode = htmlDoc.DocumentNode.SelectSingleNode("//div[contains(@class, 'hAyfc')]/span[contains(@class, 'htlgb') and preceding-sibling::div[text()='当前版本']]");
if (versionNode != null)
{
    var currentVersion = versionNode.InnerText.Trim();
    // 处理获取到的版本号
}

提示:若遇到403错误,可尝试添加Referer请求头或使用代理IP,但该方式维护成本较高,不建议作为核心功能依赖。

内容的提问来源于stack exchange,提问作者Justin Sinnard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:52:19