我在Play商店有我的应用程序。我想在新版本可用时强制更新用户。为了实现这一点,我想在应用程序启动时比较当前安装的应用程序版本和Play商店的版本。 Looking up version and forcing an update in xamarin 但我没有在响应中获得任何// div [@itemprop =' softwareVersion']标记。因此我没有从Play商店获得版本号。有没有办法在Play商店中获取当前版本。
答案 0 :(得分:2)
希望Google不会更改显示应用详细信息的当前格式,以下是您需要对代码应用以获取当前版本的更改:
@Override
protected JSONObject doInBackground(String... params) {
try {
latestVersion = Jsoup.connect("https://play.google.com/store/apps/details?id=" + context.getPackageName() + "&hl=en")
.timeout(30000)
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.referrer("http://www.google.com")
.get()
.select("div:containsOwn(Current Version)").next().text();
} catch (IOException e) {
e.printStackTrace();
}
return new JSONObject();
}
答案 1 :(得分:0)
Google更改了Google Play网页的来源并删除了&#34; softwareVersion&#34;标签。 根据这个帖子:Google playstore app version check not working any more 如果您要添加新的类似&#34; 新版本1.0.000 < / strong> 任何文字&#34; 那么你可以这样做
newVersion = Jsoup.connect("https://play.google.com/store/apps/details?id=" + MainActivity.myPackageName + "&hl=en")
.timeout(10000)
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.referrer("http://www.google.com")
.followRedirects(true)
.get()
.select("content:contains(New Version)")
.text()
.split("Version")[1]
.split(" ")[1]
您将获得没有空格的完整版本名称。
我推荐&#34;新的&#34;方法,因为没有人知道谷歌下次会在网站来源中改变什么。