URL di recensione di iTunes e iOS 7 (chiedi all'utente di valutare la nostra app) AppStore mostra una pagina vuota


158

Qualcuno sa se la tecnica utilizzata per chiedere all'utente di valutare la nostra app e aprire per lui l'App Store direttamente nella pagina di valutazione funziona ancora su iOS 7?

Ho usato per aprire questo URL dalla mia app:

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=353372460&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

Ma sembra che non funzioni più (AppStore mostra una pagina vuota). Ho anche provato questo url senza fortuna:

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?pageNumber=0&sortOrdering=1&type=Purple+Software&mt=8&id=353372460

Dopo aver esaminato il codice sorgente di UAAppReviewManager, sembra che ci sia davvero un pb con iOS7. Quindi usano l'URL standard dell'app, quindi l'utente deve cercare il pulsante di valutazione: - /
Samuel

Sembra che il link di recensione per iOS 7 non funzioni. Cambierò il mio codice nell'URL del link dell'app normale. L'utente dovrà fare clic sul pulsante di revisione.
Emmy,

4
Il secondo link che hai pubblicato ora funziona su iOS 7! Va direttamente alla pagina della recensione
Maximilian Litteral

per me .... il primo URL sembra funzionare. Ho appena sostituito il mio numero ID
Nilesh Kumar il

Possibile duplicato del link App store per "vota /
recensisci

Risposte:


198

A partire da iOS7 l'URL è cambiato e non può essere indirizzato alla pagina di revisione ma solo all'app

itms-apps://itunes.apple.com/app/idAPP_ID

Dove APP_ID deve essere sostituito con il tuo ID applicazione. In base all'ID app dalla domanda sarebbe il seguente

itms-apps://itunes.apple.com/app/id353372460

Nota l' id davanti al numero ... quella stringa è id 353372460, non solo 353372460

Per tutto ciò che precede iOS7 è necessario utilizzare l'URL "vecchio", solo quelli potrebbero portarti direttamente alla pagina di revisione. Dovresti anche tenere presente che queste chiamate funzionano solo sui dispositivi . Eseguirli nel simulatore non farà nulla in quanto sul simulatore non è installata l'app App Store.


Dai un'occhiata ad esempio a Appirater per un'implementazione. https://github.com/arashpayan/appirater

Non posso aiutarti con le specifiche di phonegap (mai usato). Fondamentalmente, si tratta di verificare la versione di iOS utilizzata dall'utente e quindi utilizzare il vecchio URL o il nuovo URL iOS7.


18
In realtà questo apre l'app e non la scheda di revisione.
Idan,

3
Sì, è vero, ma per iOS7 per ora è il migliore che si possa ottenere al momento.
Frank,

La nuova app di Facebook mostra la pagina dell'app store all'interno dell'app stessa in iOS 7. Qualcuno sa come lo fa?
EricS,

1
A differenza di iRate, DEVI utilizzare il link sopra con le informazioni / LANGUAGE / app / idAPP_ID
Dan

6
Vuoi rimuovere la lingua, Appirater ha anche lo stesso problema se il dispositivo è impostato su una lingua che non corrisponde a iTunes Store ottieni una pagina vuota (ad es. Inglese britannico), se rimuovi il bit di lingua funziona ancora e il negozio si apre nella lingua dei proprietari.
Chris,

166

Il seguente URL funziona perfettamente su iOS 7.1:

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=xxxxxxxx&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8

dove xxxxxxxxè l'ID della tua app.

AGGIORNAMENTO . Funziona su iOS 9.3.4 e iOS 10 GM (di Jeet)


5
Questo si interrompe nuovamente in 8.0 DP 5! Segnalalo ora come un bug e spero che possiamo risolverlo con la versione di produzione.
Cliff Ribaudo,

6
Funziona per me andare direttamente alla pagina di recensione di App Store.app. Costruito con Xcode 6. Verificato in iOS 8.0, iOS 7.1.2, iPhone 5 e iPhone 4.
jclee

7
Ho scoperto. Il tipo dovrebbe sempre eguagliare il software viola - è una cosa mela.
Matt Parkins,

2
Funziona correttamente su iPhone e iPad in iOS 8.3. Appena testato :) Grazie!
solo

2
Funziona bene su iPod Gen 5, iOS 9.0.1.
haxpor,

47

Questo funziona da parte mia (Xcode 5 - iOS 7 - Dispositivo !):

itms-apps://itunes.apple.com/app/idYOUR_APP_ID

Per le versioni precedenti a iOS 7 usa quella precedente:

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID

1
Questo dà uno schermo vuoto sui miei dispositivi iOS7 (usando Xcode 5), questo era l'URL che sto ancora usando per iOS6. Per iOS 7 sto usando quello dettagliato nella mia risposta. Strano che funzioni per te.
Frank,

@Frank come si apre questo link? Sto usando iRate e sta usando questo link, forse prova a usarlo e controlla qual è esattamente la differenza dal tuo codice.
Idan,

2
Sto usando il seguente codice [[UIApplication sharedApplication] openURL:[NSURL URLWithString:ITUNES_APP_URL_IOS7]];
Frank,

1
self.appStoreID non si compila nemmeno
ngb

1
Si è nuovamente rotto in iOS 8 DP5. Inizia a segnalarlo come un bug e spera che vengano risolti dalla produzione! Altrimenti aspetteremo di nuovo fino alla 8.1.
Cliff Ribaudo,

18

Alternativa semplice a una riga di codice: ** Vedi anche i commenti del simulatore di seguito **

http://itunes.apple.com/app/idAPP_ID

EDIT: ora che iOS 7.1 consente il collegamento diretto alla scheda Recensioni nell'App Store, vale la pena investire le righe di codice extra per arrivarci direttamente: vedi altre risposte per il resto.

qui stiamo usando http: invece di itms-apps: , lascia che iOS faccia il resto del lavoro

Ottengo gli stessi risultati test sui dispositivi iOS 6.1 e 7 (iPad / iPhone / iPod touch 4)

In particolare, questo collegamento , per iOS 6 porta l'utente nella Detailsscheda e non nella Reviewsscheda.

Il Purple+Softwarecollegamento porta l'utente fino alla scheda Recensioni in iOS 6, che è ovviamente preferito se sai come controllare il sistema operativo.

Nota importante : questo causerà errori nel simulatore per iOS 5.1, 6.1 e 7.
Impossibile aprire la pagina Safari non può aprire la pagina perché l'indirizzo non è valido (sappiamo che è un URL valido al di fuori del simulatore, su qualsiasi browser)

Giusto per essere chiari : su iOS 7: http://offre la stessa esperienza itms-apps:senza alcun ritardo evidente.

* tenere presente che il comportamento del simulatore indicato sopra. Questo non è del tutto diverso dal tentativo di accedere alla telecamera tramite un simulatore: il simulatore non è il posto giusto per testarlo. *


1
Non sono sicuro di come rispondi esattamente alla domanda. Questo link che hai fornito non fa ciò che l'OP richiede, ovvero l'apertura della pagina "recensioni" nell'App Store. Il collegamento diretto all'app stessa è banale.
Asem H.

Dato che non è possibile collegarsi direttamente alle recensioni in iOS7, questa sembra una soluzione perfettamente ragionevole.
Nick Cecil,

Sebbene attualmente sia vero, non vi è alcuna garanzia che http continuerà a essere indirizzato all'app App Store. Apple potrebbe decidere in futuro di inviare link di app http a Safari, chi lo sa? Più sicuro usare il protocollo diretto.
poetmountain,

Tranne il fatto che Apple ha modificato il protocollo diretto in modo che non funzioni in iOS7 a meno che non si utilizzi un formato diverso. Quindi non è affatto "più sicuro".
Real World,

1
Per quanto riguarda http:vs itms-apps:sono stato in grado di collegarmi direttamente alla scheda recensioni con itms-appse non con httpiOS 7.1.1.
zekel,

17

L'apertura della pagina di recensione direttamente dall'app è possibile in iOS7. Si prega di utilizzare il seguente URL ...

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID

Funzionerà sicuramente .. :)


Non ne ho idea .. Hai verificato iOS8?
Murali,

1
No non lo fa. Invia una segnalazione di bug!
Cliff Ribaudo,

Sono su iOS 8.1.1 e questo URL passa direttamente alla pagina di revisione.
mrzzmr,

1
Che cos'è "type = Purple + Software" nella stringa?
Darko,

16

Non è chiaro quali versioni di iOS Questo è supportato da, ma come parte di IOS 10.3 c'è un nuovo parametro di query che può essere aggiunto alla URL: action=write-review. Ho provato questo su iOS 10.2 e 9.3.5 e funziona. Tuttavia, non funziona su iOS 7.1.2, quindi è stato aggiunto il supporto tra iOS 8.0 e 9.3.5. Sono necessarie ulteriori indagini!

Esempio: https://itunes.apple.com/app/id929726748?action=write-review&mt=8

Questo aprirà la finestra di dialogo "Scrivi una recensione" , piuttosto che mostrare semplicemente la scheda Revisione.


2
Saluti fratello :) Questa è stata la soluzione migliore finora. Al punto e serve completamente allo scopo. Per me questa è la risposta accettabile. Testato per funzionare su 9.3.5 e iOS 10.2.1. Si apre direttamente scrivere una recensione. Ho usato questo: itms-apps: //itunes.apple.com/gb/app/id1136613532? Action = write-review & mt = 8, per consentire all'utente di scrivere direttamente la recensione.
Ankit Kumar Gupta

... ma non si riferisce alla Gran Bretagna? In tal caso, questo farà riferimento a tutti gli utenti sull'App Store del Regno Unito?
Robert Gummesson,

@Robert Yeh, il link che avevo inizialmente / gb all'inizio. Penso che sarebbe ancora aperto al negozio dell'utente, ma l'ho rimosso dalla risposta
Joseph Duffy,

Funziona in iOS10, ma non sembra funzionare in iOS11 (usando beta 9). Qualche idea se qualcosa fosse cambiato?
ZS

Funziona con iOS 11.1.1. Grazie! Dovrebbe essere la risposta accettata, @astrocb
Vexir,

9
+ (NSString *)getReviewUrlByAppId:(int)appId
{ 
    NSString *templateReviewURL = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=APP_ID";
    NSString *templateReviewURLiOS7 = @"itms-apps://itunes.apple.com/app/idAPP_ID";
    NSString *templateReviewURLiOS8 = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software";

    //ios7 before
    NSString *reviewURL = [templateReviewURL stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", appId]];

    // iOS 7 needs a different templateReviewURL @see https://github.com/arashpayan/appirater/issues/131
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 7.1) 
    {
        reviewURL = [templateReviewURLiOS7 stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", appId]];
    }
    // iOS 8 needs a different templateReviewURL also @see https://github.com/arashpayan/appirater/issues/182
    else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
    {
        reviewURL = [templateReviewURLiOS8 stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", appId]];
    }

    return reviewURL;
}

1
Appirater è stato nuovamente aggiornato per risolvere un altro problema. La modifica principale consisteva nel modificare il segno di spunta < 7.1in < 8.0modo che il templateReviewURLiOS7collegamento venga utilizzato per tutte le versioni di iOS 7.x anziché utilizzare il vecchio collegamento per tutto tra> = 7.1 e <8.0.
Markus A.

9

Il collegamento alla recensione si è nuovamente interrotto in iOS9. Nel fare alcuni esperimenti, ho capito che Apple è tornata a com'era prima di iOS7. Quindi devi fare:

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=247423477&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

Dov'è il 247423477tuo ID app a 9 cifre (la differenza principale è che devi aggiungere &onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Softwaredopo l'ID app).


5

Tutte le risposte di cui sopra sono state ora deprecate (iOS 7, ma potrebbero funzionare), quindi fornisco il nuovo modo in cui Apple consiglia di fornire collegamenti alle app. Il link per la tua App è quello di iTunes (usa Copia Link), questo è raccomandato per l'uso nel codice:

Swift 3.0

let path = URL(string: "https://itunes.apple.com/us/app/calcfast/id876781417?mt=8")
UIApplication.shared.open(path!)

O meglio: tratta l'opzionale correttamente e gestisci la possibilità di non riuscire a raggiungere il link:

if let path = URL(string: "https://itunes.apple.com/us/app/calcfast/id876781417?mt=8") {
    UIApplication.shared.open(path) {
        (didOpen:Bool) in
        if !didOpen {
            print("Error opening:\(path.absoluteString)")
        }
    }
}

Objective-C

#define APP_URL_STRING  @"https://itunes.apple.com/us/app/calcfast/id876781417?mt=8"

allora puoi chiamare il APP_URL_STRINGtuo codice:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: APP_URL_STRING] options:@{} completionHandler:nil];

Si noti che questo è il modo consigliato ora da Apple, poiché il precedente metodo di elaborazione dei collegamenti di reindirizzamento è stato deprecato e non è supportato.

Il link per tutte le tue app, se ne hai più di una:

#define MYCOMPANY_URL_PATH @"http://appstore.com/mycompany"
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: MYCOMPANY_URL_PATH] options:@{} completionHandler:nil];

Si consiglia di utilizzare il collegamento App sopra indicato nel codice o nei collegamenti che non vengono visualizzati direttamente dall'utente. Se si desidera fornire un collegamento che può essere visualizzato e ricordato dall'utente, utilizzare quanto segue: http://appstore.com/calcfast


3
questo non si collega alla pagina delle recensioni
ngb

@ngb puoi solo collegarti alle App o alla pagina degli sviluppatori. Per favore, quando si vota verso il basso dare un motivo valido o fallimento. Non sto mostrando link alla pagina di revisione, ma l'utente può facilmente fare clic su rate.
Sverrisson,

1
Questo è il metodo Apple consigliato corretto. Qualcos'altro è un trucco.
Martin Marconcini,

@Bingo Che vuoi dire? Il link che fornisco termina con & mt = 8 ans link alla pagina di revisione. Nella mia risposta mi riferisco a ciò che Apple consiglia, il tuo link potrebbe funzionare ora e forse nel tuo caso, ma funziona per gli utenti di un altro paese o sei sicuro che non cambierà?
Sverrisson,

4

L'uso di questo URL è stata la soluzione perfetta per me. Porta l'utente direttamente al Write a Review section. Crediti a @Joseph Duffy.

Per un codice di esempio, prova questo:

Swift 3, Xcode 8.2.1:

 let openAppStoreForRating = "itms-apps://itunes.apple.com/gb/app/id1136613532?action=write-review&mt=8"
 if UIApplication.shared.canOpenURL(URL(string: openAppStoreForRating)!) {
      UIApplication.shared.openURL(URL(string: openAppStoreForRating)!)
 } else {
      showAlert(title: "Cannot open AppStore",message: "Please select our app from the AppStore and write a review for us. Thanks!!")
 }

Qui showAlert è una funzione personalizzata per un UIAlertController.


3

Ho questo per ottenere automaticamente l'ID prodotto e generare la revisione dell'App Store e i collegamenti alla pagina del prodotto .

- (void) getAppStoreLinks {
productID = [[NSUserDefaults standardUserDefaults] objectForKey:@"productID"]; //NSNumber instance variable
appStoreReviewLink = [[NSUserDefaults standardUserDefaults] objectForKey:@"appStoreReviewLink"]; //NSString instance variable
appStoreLink = [[NSUserDefaults standardUserDefaults] objectForKey:@"appStoreLink"]; //NSString instance variable

if (!productID || !appStoreReviewLink || !appStoreLink) {
    NSString *iTunesServiceURL = [NSString stringWithFormat:@"https://itunes.apple.com/lookup?bundleId=%@", [NSBundle mainBundle].bundleIdentifier];
    NSURLSession *sharedSes = [NSURLSession sharedSession];
    [[sharedSes dataTaskWithURL:[NSURL URLWithString:iTunesServiceURL]
              completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

                  NSInteger statusCode = ((NSHTTPURLResponse *)response).statusCode;

                  if (data && statusCode == 200) {

                      id json = [[NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingOptions)0 error:nil][@"results"] lastObject];

                      //productID should be NSNumber but integerValue also work with NSString
                      productID = json[@"trackId"];

                      if (productID) {
                          appStoreReviewLink = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%d&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8",productID.integerValue];
                          appStoreLink = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%d",productID.integerValue];

                          [[NSUserDefaults standardUserDefaults] setObject:productID forKey:@"productID"];
                          [[NSUserDefaults standardUserDefaults] setObject:appStoreReviewLink forKey:@"appStoreReviewLink"];
                          [[NSUserDefaults standardUserDefaults] setObject:appStoreLink forKey:@"appStoreLink"];

                      }
                  } else if (statusCode >= 400) {
                      NSLog(@"Error:%@",error.description);
                  }
              }
      ] resume];
}
}

Apri la pagina di revisione dell'app

- (IBAction) rateButton: (id)sender {
   NSString *appStoreReviewLink = appStoreReviewLink;
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:appStoreReviewLink]];
}

Apri la pagina dell'App Store

 - (IBAction) openAppPageButton: (id)sender {
   NSString *appStoreLink = appStoreLink;
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString: appStoreLink]];
 }

2

Si dice che questo bug verrà corretto su iOS7.1. Leggi qui sul forum corona e qui su iPhoneDevSDK .


3
Sfortunatamente iOS 7.1 è ora uscito e non funziona ancora.
user1139733

2
Funziona di nuovo su iOS 7.1 (andando direttamente alla pagina Recensioni) e altri hanno indicato lo stesso nel collegamento devsdk. Per me, ho dovuto solo cambiare lo schema da itms-app a http e funziona perfettamente su iOS 7.1. Su iOS 7.0 va ancora solo alla pagina dell'app principale, ma almeno il collegamento http funziona, a differenza del vecchio collegamento itms-app che mostrerebbe solo una pagina bianca.
Stonemonk,

Ora posso confermare positivamente che il metodo "vecchio" (Purple + Software) funziona perfettamente in iOS7.1 Puoi vedere una prova nella mia app: j.mp/josegg Nella schermata principale fai clic su "Impostazioni" -> fai clic su "Ottieni gratis Js "-> quindi fai clic su" Valutaci "-> verrai indirizzato direttamente alla scheda di revisione della pagina della mia app sull'app store (ovviamente funziona solo per iOS 7.1+ o iOS 6.1.4-)
Joselito
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.