我实际上试图找到一种方法来检查是否有可用于Windows应用商店的更新。 有没有办法用API来做到这一点? 谢谢! Essam以编程方式检查Windows应用商店应用更新
回答
Windows应用商店没有专门用于检查更新的API。有一个相当简单的工作。
var package = Windows.ApplicationModel.Package.Current;
PackageVersion t = package.Id.Version;
这会让你得到用户正在运行的软件包版本。您可以使用它来检查您的服务器的当前版本。如果您的应用程序尚未安装一个应用程序,则无需进行花哨的服务,您可以在Web服务器上使用简单的文本文件。说“myappversion.txt”。通过网络请求下载。
somthing like。
WebRequest req = WebRequest.Create(new Uri(@"http://myurl.com/MyAppversion.txt"));
var result = await req.GetResponseAsync();
这不是我所知道的。另外考虑Windows 8.1应该默默更新应用程序,所以这可能甚至不需要,尽管可以看到该更新是否在应用程序启动之前。
让我知道你是否需要更多帮助。
还有就是在这个帖子中列出的Windows应用商店的数据无证访问:
http://jasonthomascarter.blogspot.com/2013/08/the-friendly-developers-guide-to.html
我在这里贴上它的文本,如果该网站曾经消失。 :)
今天,我收到了一位开发人员对我的Windows应用商店应用程序轮盘的支持电子邮件的询问。这非常令人耳目一新,我很乐意与其他开发者分享信息。我越来越兴奋地看到他们会创造什么,而不是担心竞争的可能性。所以我在这里与大家分享。无论如何,这位开发人员想知道如何获得这个应用程序的信息,我会解释我是如何访问这些信息的,以及如何获取这些信息。
首先是一点自我推销,除了应用程序轮盘我还在其他一些应用程序中使用这些信息。开发人员信息中心提供一站式服务,您可以通过简单的点击来翻译每个评论,查看所有国家/地区的评论,Windows Store开发人员可以查看Windows应用商店中所有开发人员的目录(超过10000个)及其应用程序,最活跃审核人员可查看最多产的应用审核人员及其评论目录,并在我自己的投资组合应用软件开发人员名单中列出我在Windows应用商店发布的所有其他应用,请给他们一些尝试。
这里我们开始吧!首先,我们将从Windows Store网站的Robots.txt文件开始。
网站使用robots.txt指导如何做人网络爬虫,他们希望他们看到了什么,他们不希望他们看到的内容。
网页机器人(也称为Web流浪汉,爬行,或蜘蛛),是自动遍历Web程序。像Google这样的搜索引擎使用它们为网页内容建立索引,垃圾邮件发送者使用它们来扫描电子邮件地址,并且还有许多其他用途。
在这种情况下,Sitemaps.xml索引文件是我们所感兴趣的http://apps.microsoft.com/windows/sitemap_index.xml
站点地图是网站站长告知搜索引擎有关网站页面的简单方法可用于抓取。 Sitemaps最简单的形式就是一个XML文件,其中列出了网站的URL以及关于每个URL的附加元数据(上次更新时的时间,频率通常会发生变化的频率以及相对于网站中其他URL的重要程度),以便搜索引擎可以更智能地抓取该网站。
Sitemap索引文件列出了每个单独的Sitemap XML文件。截至撰写本文时,apps.microsoft.com网站拥有141个独立的Sitemap XML文件。
在单个文件中有数千个URL存储到Windows应用商店应用的网页中。例如PlayTo Receiver应用程序的这个网址:http://apps.microsoft.com/windows/en-us/app/playto-receiver/72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e
这些应用程序的网页确实包含了一些我们可以从HTML中获取的信息,但我们可以做得更好......我们获得的关键信息是应用程序ID以及这些应用程序ID在地理位置上发布到商店中的哪些地理位置。 例如:72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e
和en-us
等...
现在,我们可以使用我们新发现的App ID和地理信息调用一些Web服务。
有大量的信息,可通过这个Web服务,但它没有明确的元素名称拼写出来。这是我对许多(不是全部)人的解释,让你开始。
sSubCategoryName = rawXML.getElementsByTagName('Sc')[0].getElementsByTagName('N')[0].childNodes[0].nodeValue;
sSubCategoryId = rawXML.getElementsByTagName('Sc')[0].getElementsByTagName('I')[0].childNodes[0].nodeValue;
sHasTrial = rawXML.getElementsByTagName('Try')[0].childNodes[0].nodeValue;
sDescription = rawXML.getElementsByTagName('D')[0].childNodes[0].nodeValue;
sDeveloper = rawXML.getElementsByTagName('Dev')[0].childNodes[0].nodeValue;
sWebsite = rawXML.getElementsByTagName('Ws')[0].childNodes[0].nodeValue;
sSupport = rawXML.getElementsByTagName('Sws')[0].childNodes[0].nodeValue;
sPrivacy = rawXML.getElementsByTagName('Pu')[0].childNodes[0].nodeValue;
sCategoryName = rawXML.getElementsByTagName('C')[0].getElementsByTagName('N')[0].childNodes[0].nodeValue;
sCategoryId = rawXML.getElementsByTagName('C')[0].getElementsByTagName('I')[0].childNodes[0].nodeValue;
sPrice = rawXML.getElementsByTagName('P')[0].childNodes[0].nodeValue;
sForegroundColor = rawXML.getElementsByTagName('Fg')[0].childNodes[0].nodeValue;
sBackgroundColor = rawXML.getElementsByTagName('Bg')[0].childNodes[0].nodeValue;
sAppIcon = rawXML.getElementsByTagName('Ico')[0].childNodes[0].nodeValue;
sAppName = rawXML.getElementsByTagName('T')[0].childNodes[0].nodeValue;
sPackageFamilyName = rawXML.getElementsByTagName('Pfn')[0].childNodes[0].nodeValue;
sResourceId = rawXML.getElementsByTagName('R')[0].childNodes[0].nodeValue;
sId = rawXML.getElementsByTagName('I')[0].childNodes[0].nodeValue;
sCapabilities = sCapabilities + arrCapabilities[k].childNodes[0].nodeValue+",";
sUpdate = rawXML.getElementsByTagName('Ud')[0].childNodes[0].nodeValue;
sFeatures1 = rawXML.getElementsByTagName('Dbp')[0].childNodes[0].nodeValue;
sFeatures2 = rawXML.getElementsByTagName('Dbp')[1].childNodes[0].nodeValue;
sFeatures3 = rawXML.getElementsByTagName('Dbp')[2].childNodes[0].nodeValue;
sFeatures4 = rawXML.getElementsByTagName('Dbp')[3].childNodes[0].nodeValue;
sFeatures5 = rawXML.getElementsByTagName('Dbp')[4].childNodes[0].nodeValue;
sFeatures6 = rawXML.getElementsByTagName('Dbp')[5].childNodes[0].nodeValue;
sFeatures7 = rawXML.getElementsByTagName('Dbp')[6].childNodes[0].nodeValue;
sFeatures8 = rawXML.getElementsByTagName('Dbp')[7].childNodes[0].nodeValue;
sFeatures9 = rawXML.getElementsByTagName('Dbp')[8].childNodes[0].nodeValue;
sScreenshot1 = rawXML.getElementsByTagName('Ss')[0].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot2 = rawXML.getElementsByTagName('Ss')[1].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot3 = rawXML.getElementsByTagName('Ss')[2].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot4 = rawXML.getElementsByTagName('Ss')[3].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot5 = rawXML.getElementsByTagName('Ss')[4].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot6 = rawXML.getElementsByTagName('Ss')[5].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot7 = rawXML.getElementsByTagName('Ss')[6].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot8 = rawXML.getElementsByTagName('Ss')[7].getElementsByTagName('U')[0].childNodes[0].nodeValue
sScreenshot9 = rawXML.getElementsByTagName('Ss')[8].getElementsByTagName('U')[0].childNodes[0].nodeValue
sCaption1 = rawXML.getElementsByTagName('Ss')[0].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption2 = rawXML.getElementsByTagName('Ss')[1].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption3 = rawXML.getElementsByTagName('Ss')[2].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption4 = rawXML.getElementsByTagName('Ss')[3].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption5 = rawXML.getElementsByTagName('Ss')[4].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption6 = rawXML.getElementsByTagName('Ss')[5].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption7 = rawXML.getElementsByTagName('Ss')[6].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
sCaption8 = rawXML.getElementsByTagName('Ss')[7].getElementsByTagName('Cap')[0].childNodes[0].nodeValue
还有更多的Windows应用商店不仅仅是应用程序,也有评论,其中很多。目前Windows商店中的应用程序有超过210,000条评论。这些评论来自世界各地,所以你需要一些国家代码,你的方便花哨的App ID,并在最后关注pn/1,你会发现这项服务只返回每页10条评论,只是增加此值为pn/2,pn/3等。直到您用完评论。
var arrCounntryCodes = ["AE", "AR", "AT", "AU", "BE", "BG", "BH", "CA", "CH", "CL", "CN", "CO", "CR", "CY", "CZ", "DE", "DK", "DZ", "EE", "EG", "ES", "FI", "FR", "GB", "GR", "HK", "HR", "HU", "ID", "IE", "IL", "IN", "IQ", "IT", "JO", "JP", "KW", "KZ", "LB", "LK", "LT", "LU", "LV", "LY", "MA", "MT", "MX", "MY", "NL", "NO", "NZ", "OM", "PE", "PH", "PK", "PL", "QA", "RO", "RS", "RU", "SA", "SE", "SG", "SI", "SK", "TH", "TN", "TR", "TT", "UA", "US", "UY", "VE", "VN"];
这一个是更加的描述与元素的名字,所以我看不出有什么必要对这个进一步的解释。您可以看到全名,显示名称,用户选择用自己表示的图像。
接下来我们可以做seaching的一点点... https://services.apps.microsoft.com/search/6.2.9200-1/615/en-US_en-US/m/US/c/US/il/en-US/cp/10005001/query/cid/0/pf/1/pc/0/pt/x64/af/0/lf/0/s/0/2/pn/0?phrase=Software Developer
这里就有点神秘了,但现在你应该使用它。你可以从我元素获得一个App ID,并从那里回浏览服务<I>f514d64b-8705-43b7-a400-c4f4f3dedfc0</I>
所以你有它,拉动吨的信息了Windows应用商店中的基础知识,然后就可以做你请使用。如果你觉得这个有用并且/或者让一些应用程序利用这些信息,请分享一些额外的信息,否则请在评论中告诉我。
- 1. Windows应用商店应用:以编程方式更改语言
- 2. 以编程方式构建Windows应用商店应用
- 3. 以编程方式获取Windows应用商店应用信息
- 4. 以编程方式重新启动Windows应用商店应用程序
- 5. Windows应用商店应用UI更新
- 6. Windows应用商店应用更新GridView
- 7. Windows商店应用程序更新
- 8. 以编程方式为Windows应用商店应用启用kiosk模式
- 9. Windows应用商店应用:以编程方式访问ListView中的样式
- 10. 如何以编程方式启动Windows应用商店应用程序?
- 11. 如何在应用商店中检测MobileFirst iOS应用的新版本并以编程方式直接更新?
- 12. 检查更新可用的应用程序商店
- 13. 如何以编程方式检查应用商店地区/国家/地区?
- 14. Windows商店应用程序
- 15. 如何在UWP中以编程方式安装Windows商店应用程序?
- 16. C#商店应用程序:更新ListView
- 17. 强制应用程序商店更新
- 18. 如何以编程方式在Windows Phone 8中获取应用商店链接?
- 19. 以编程方式淡入/淡出Windows应用商店中的圈子
- 20. 如何以编程方式从应用商店获取我的应用版本
- 21. 如何以编程方式进入应用商店(从应用内)?
- 22. 更新Windows应用商店应用时会发生什么?
- 23. 测试的Windows Phone 8.1应用的更新,应用在商店
- 24. 禁用Windows应用商店
- 25. Windows商店应用程序:如何以编程方式启动蓝牙设置应用程序
- 26. 正在更新应用程序商店中的应用程序以及更多
- 27. 检测Windows应用商店的平台
- 28. 从应用程序商店更新应用程序崩溃
- 29. 8.1应用程序的商店更新为uwp应用程序
- 30. NSUserDefaults和从应用程序商店更新应用程序
也想知道这个 –
3年后 - 现在有什么更好的解决方案? – nhouser9