【问题标题】:Xamarin.Android How to Get Google Play Store app version number using Dcsoup Nuget Plugin?Xamarin.Android 如何使用 Dcsoup Nuget 插件获取 Google Play 商店应用程序版本号?
【发布时间】:2019-04-04 01:31:52
【问题描述】:

我正在尝试获取我的商店应用程序的最新版本号,以便在用户使用旧版本时通知他们更新。

到目前为止,这是我的代码,但它显然只是检索包含文本“版本号”的 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;
        }

【问题讨论】:

    标签: dom xamarin.android jsoup


    【解决方案1】:

    根据parser doc, containsOwm 选择器选择直接包含指定文本的元素。 结果,您的代码

    var versionElement = doc.Select("div:containsOwn(Current Version)");
    

    肯定会返回“当前版本”。您想要获得的真正元素是“当前版本”元素的兄弟元素的子元素。因此,您必须使用选择器获取该元素。 所以可以通过这种方式获取版本号:

                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;
    

    【讨论】:

    • 这是正确的,但我如何在代码中编写它?这就是我被困的地方。我会继续努力的。
    • 非常感谢!
    • Elements 一个数组或列表。没有看到 XF 命名空间中的数据类型?
    猜你喜欢
    • 2017-03-02
    • 2022-06-16
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2015-07-20
    相关资源
    最近更新 更多