2016-10-20 254 views
0

如果Google Play商店/ ios应用商店中存在新版本,我需要知道何时开始运行我的应用。xamarin.forms从应用商店/ google商店中读取应用版本

我想通过比较我的正在运行的应用程序版本与商店中的应用程序版本来执行此操作。

如何在运行时从商店中读取应用程序版本?

回答

2
string url = "http://itunes.apple.com/lookup?bundleId=YourBundelID"; 

using (var webClient = new System.Net.WebClient()) 
{ 
    string jsonString = webClient.DownloadString(string.Format(url)); 

    var lookup = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonString); 


    if (lookup != null 
     && lookup.Count >= 1 
     && lookup["resultCount"] != null 
     && Convert.ToInt32(lookup["resultCount"].ToString()) > 0) 
    { 

     var results = JsonConvert.DeserializeObject<List<object>>(lookup[@"results"].ToString()); 


     if (results != null && results.Count > 0) 
     { 
      var values = JsonConvert.DeserializeObject<Dictionary<string, object>>(results[0].ToString()); 
      appStoreAppVersion = values.ContainsKey("version") ? values["version"].ToString() : string.Empty; 
     } 
    } 
} 

return appStoreAppVersion; 
1

没有(简单)的方法来做到这一点。做到这一点的最佳方式是通过一些API访问应用程序的详细信息,但我认为他们没有(公开)提供。所以另一种方式可能会刮掉相关网站,但我很确定他们会对这种方法感到不满,也许他们的许可证甚至禁止它。

此外,大多数这种解决方案是由于糟糕的设计。用户必须能够使用旧版本的日子,尽管您应该争取新版本的快速采用。 但是请记住设计后端等,你必须向后兼容。

最后,作为一个用户,我真的很讨厌这类消息。取决于它是什么类型的应用程序,我只是想使用它,然后不要被迫更新,所以出去,更新,并尝试做我首先打开它的东西。

2

如果没有简单的方法来实现这一点,请构建您自己的简单方法;-) 例如:每次上传到应用商店,都会将当前版本信息上传到您可以从应用访问的在线资源。所有你需要的是一个网络服务器,你可以运行你自己的API或者上传一个包含版本信息的文件。

也许不是你期待的解决方案,但它肯定会起作用。