Xamarin.Android 如何使用 Dcsoup Nuget 插件获取 Google Play Store 应用版本号?
Xamarin.Android How to Get Google Play Store app version number using Dcsoup Nuget Plugin?
我正在尝试获取我的商店应用程序的最新版本号,以便在用户使用旧版本时通知他们进行更新。
到目前为止,这是我的代码,但它显然只是检索包含文本 "Version Number" 的 div。如何根据随附的 DOM 树截图获取实际版本号(在本例中为 1.1)?
public static string GetAndroidStoreAppVersion()
{
string androidStoreAppVersion = null;
try
{
using (var client = new HttpClient())
{
var doc = client.GetAsync("https://play.google.com/store/apps/details?id=" + AppInfo.PackageName + "&hl=en_CA").Result.Parse();
var versionElement = doc.Select("div:containsOwn(Current Version)");
androidStoreAppVersion = versionElement.Text;
}
}
catch (Exception ex)
{
// do something
Console.WriteLine(ex.Message);
}
return androidStoreAppVersion;
}
根据parser doc,containsOwm 选择器选择直接包含指定文本的元素。
结果,您的代码
var versionElement = doc.Select("div:containsOwn(Current Version)");
一定会return"Current Version"。您想要获取的真实元素是 "Current Version" 元素的同级元素的 child 的 child。所以你必须使用选择器来获取该元素。
所以可以这样获取版本号:
var versionElement = doc.Select("div:containsOwn(Current Version)");
Element headElement = versionElement[0];
Elements siblingsOfHead = headElement.SiblingElements;
Element contentElement = siblingsOfHead.First;
Elements childrenOfContentElement = contentElement.Children;
Element childOfContentElement = childrenOfContentElement.First;
Elements childrenOfChildren = childOfContentElement.Children;
Element childOfChild = childrenOfChildren.First;
androidStoreAppVersion = childOfChild.Text;
我正在尝试获取我的商店应用程序的最新版本号,以便在用户使用旧版本时通知他们进行更新。
到目前为止,这是我的代码,但它显然只是检索包含文本 "Version Number" 的 div。如何根据随附的 DOM 树截图获取实际版本号(在本例中为 1.1)?
public static string GetAndroidStoreAppVersion()
{
string androidStoreAppVersion = null;
try
{
using (var client = new HttpClient())
{
var doc = client.GetAsync("https://play.google.com/store/apps/details?id=" + AppInfo.PackageName + "&hl=en_CA").Result.Parse();
var versionElement = doc.Select("div:containsOwn(Current Version)");
androidStoreAppVersion = versionElement.Text;
}
}
catch (Exception ex)
{
// do something
Console.WriteLine(ex.Message);
}
return androidStoreAppVersion;
}
根据parser doc,containsOwm 选择器选择直接包含指定文本的元素。 结果,您的代码
var versionElement = doc.Select("div:containsOwn(Current Version)");
一定会return"Current Version"。您想要获取的真实元素是 "Current Version" 元素的同级元素的 child 的 child。所以你必须使用选择器来获取该元素。 所以可以这样获取版本号:
var versionElement = doc.Select("div:containsOwn(Current Version)");
Element headElement = versionElement[0];
Elements siblingsOfHead = headElement.SiblingElements;
Element contentElement = siblingsOfHead.First;
Elements childrenOfContentElement = contentElement.Children;
Element childOfContentElement = childrenOfContentElement.First;
Elements childrenOfChildren = childOfContentElement.Children;
Element childOfChild = childrenOfChildren.First;
androidStoreAppVersion = childOfChild.Text;