2012-12-18 16 views

risposta

4

L'archivio di Windows non ha alcuna API specifica per verificare la presenza di un aggiornamento. C'è un lavoro abbastanza facile in giro.

var package = Windows.ApplicationModel.Package.Current; 
     PackageVersion t = package.Id.Version; 

In questo modo si ottiene la versione del pacchetto in esecuzione dell'utente. Puoi usare questo per controllare uno dei tuoi server per la versione corrente. Non devi fare un servizio elegante se non hai già una configurazione da utilizzare per l'app, potresti utilizzare un semplice file di testo sul tuo server web. dì "myappversion.txt". Scaricalo tramite una richiesta web.

somthing like.

 WebRequest req = WebRequest.Create(new Uri(@"http://myurl.com/MyAppversion.txt")); 

     var result = await req.GetResponseAsync(); 

Non è l'ideale, lo so. Si consideri inoltre che Windows 8.1 dovrebbe aggiornare le app in modo silenzioso, in modo che questo non sia nemmeno necessario, anche se deve essere visto se tale aggiornamento sarà prima che l'app venga avviata o meno.

Fammi sapere se hai bisogno di ulteriore aiuto.

2

C'è un accesso ai dati non documentato vetrine descritte in questo post:

http://jasonthomascarter.blogspot.com/2013/08/the-friendly-developers-guide-to.html

Ho incollato il testo qui, nel caso in cui il sito va mai via. :)

Oggi ho ricevuto una richiesta da un altro sviluppatore sull'e-mail di supporto per una delle mie app di Windows Store App Roulette. È stato piuttosto rinfrescante e sono abbastanza aperto a condividere informazioni con altri sviluppatori. Sono più entusiasta di vedere cosa creeranno rispetto al potenziale per la competizione. Quindi sono qui per condividere con tutti voi. Ad ogni modo, questo sviluppatore si chiedeva come ottenere queste informazioni sull'App e spiegherei come accedo a ciò e come puoi farlo.

Prima un po 'di auto-promozione, oltre alla Roulette app uso queste informazioni in poche altre app. Dashboard per sviluppatori: uno sportello unico per visualizzare le recensioni di tutti i paesi per tutte le tue app con un semplice tocco per tradurre ogni recensione, Windows Store Developers una directory di tutti gli sviluppatori in Windows Store (oltre 10000) e le loro app, Most Active I revisori sono una directory dei revisori di app più prolifici e delle loro recensioni, e nello sviluppatore software di app del mio portafoglio che elenca tutte le altre app che ho pubblicato su Windows Store, per favore provate alcuni di loro.

Eccoci! Innanzitutto inizieremo con il file Robots.txt per il sito Web di Windows Store.

http://apps.microsoft.com/robots.txt

siti web usano robots.txt per guidare crawler web su come comportarsi, quello che vogliono loro di vedere, e ciò che non vogliono loro di vedere.

http://www.robotstxt.org/

Robots web (noto anche come Web Wanderers, crawler o spider), sono programmi che attraversano automaticamente il Web. I motori di ricerca come Google li usano per indicizzare il contenuto web, gli spammer li usano per cercare indirizzi e-mail e hanno molti altri usi.

In questo caso il file di indice Sitemaps.xml è quello che ci interessa. http://apps.microsoft.com/windows/sitemap_index.xml

http://www.sitemaps.org/

Sitemaps sono un modo semplice per i webmaster per informare i motori di ricerca le pagine dei loro siti che sono disponibili per la scansione. Nella sua forma più semplice, una Sitemap è un file XML che elenca gli URL per un sito insieme ai metadati aggiuntivi su ciascun URL (quando è stato aggiornato l'ultima volta, con quale frequenza di solito cambia e quanto è importante, rispetto ad altri URL nel sito) in modo che i motori di ricerca possano effettuare una scansione più intelligente del sito.

Il file Indice Sitemap elenca ciascuno dei singoli file XML Sitemap. Al momento della stesura di questo documento, il sito web apps.microsoft.com ha 141 singoli file XML Sitemap.

All'interno dei singoli file ci sono migliaia di URL delle pagine Web delle app di Windows Store. Come questo URL all'app PlayTo Receiver: http://apps.microsoft.com/windows/en-us/app/playto-receiver/72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e

Queste pagine Web per le app includono un bel po 'di informazioni che potremmo ricavare dall'HTML ma possiamo fare meglio .... Le informazioni chiave che stiamo ottenendo qui è l'ID app e in quali aree geografiche vengono pubblicati gli ID app nel negozio. Per esempio: 72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e e en-us ecc ...

E ora per la roba buona, c'è un paio di servizi web possiamo chiamare utilizzando il nostro e di geografia informazioni App Id ritrovata.

https://services.apps.microsoft.com/browse/6.2.9200-1/615/en-US_en-US/c/US/cp/10005001/Apps/72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e

C'è un sacco di informazioni disponibili attraverso questo servizio web, ma non è chiaramente indicato dai nomi degli elementi. Ecco la mia interpretazione di molti (non tutti) di loro per iniziare.

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 

C'è di più in Windows Store oltre alle app, ci sono anche recensioni e molte di esse. Ci sono attualmente oltre 210.000 recensioni per le app in Windows Store. Queste recensioni provengono da tutto il mondo, quindi avrai bisogno di alcuni codici paese, i tuoi utili ID app dandy e presta attenzione al pn/1 alla fine, troverai che questo servizio restituisce solo 10 recensioni per pagina, basta incrementare questo valore per pn/2, pn/3 ecc. fino a quando non si esauriscono le recensioni.

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"]; 

https://services.apps.microsoft.com/4R/6.2.9200-1/1/en-US/m/US/Apps/f514d64b-8705-43b7-a400-c4f4f3dedfc0/Reviews/all/s/date/1/pn/1

Questo è molto più descrittivo con i nomi degli elementi, quindi non vedo alcuna necessità di ulteriori spiegazione di questo. Puoi vedere il nome completo, il nome visualizzato, l'immagine con cui l'utente ha scelto di rappresentarsi.

Next up possiamo fare un po 'di 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

Qui diventa un po' criptico di nuovo, ma ormai si dovrebbe essere usato per esso. Puoi ottenere l'ID app dall'elemento I e portarlo da lì al servizio di ricerca <I>f514d64b-8705-43b7-a400-c4f4f3dedfc0</I>

Quindi, ecco le basi per estrarre tonnellate di informazioni da Windows Store e quindi puoi fare ciò che per favore con. Se trovi questo utile e/o fai delle app che utilizzano le informazioni, hai alcune informazioni aggiuntive da condividere o altrimenti per favore fammelo sapere nei commenti.

Problemi correlati