wake-up-neo.net

ITunes prüft URL und iOS 7 (Benutzer bitten, unsere App zu bewerten) AppStore zeigt eine leere Seite an

Weiß jemand, ob die Technik, mit der der Benutzer aufgefordert wurde, unsere App zu bewerten und für ihn den App Store direkt auf der Bewertungsseite zu öffnen, unter iOS 7 noch funktioniert?

Ich habe diese URL über meine App geöffnet:

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

Es sieht aber so aus, als würde es nicht mehr funktionieren (AppStore zeigt eine leere Seite an). Ich habe diese URL auch ohne Glück ausprobiert:

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

Ab iOS7 hat sich die URL geändert und kann nicht mehr zur Überprüfungsseite, sondern nur noch zur App weiterleiten

itms-apps://iTunes.Apple.com/app/idAPP_ID

Wobei APP_ID durch Ihre Anwendungs-ID ersetzt werden muss. Basierend auf der App-ID aus der Frage wäre es das Folgende

itms-apps://iTunes.Apple.com/app/id353372460

Beachten Sie, dass id vor der Zahl ... diese Zeichenfolge id ist, nicht nur 353372460

Für Vorgängerversionen von iOS7 muss die "alte" URL verwendet werden. Nur diese können Sie direkt zur Überprüfungsseite bringen. Sie sollten auch beachten, dass diese Anrufe nur funktionieren auf Geräten. Das Ausführen im Simulator führt zu nichts, da auf dem Simulator die App Store-App nicht installiert ist.


Schauen Sie sich zum Beispiel Appirater für eine Implementierung an. https://github.com/arashpayan/appirater

Ich kann dir nicht mit den Details von Phonegap helfen (habe es nie benutzt). Grundsätzlich kommt es jedoch darauf an, die iOS-Version zu überprüfen, die Ihr Benutzer ausführt, und dann entweder die alte URL oder die neue iOS7-URL zu verwenden.

198
Frank

Die folgende URL funktioniert unter iOS 7.1 einwandfrei:

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

dabei steht xxxxxxxx für Ihre App-ID.

UPDATE . Funktioniert unter iOS 9.3.4 und iOS 10 GM (von Jeet)

165
mkll

Das funktioniert auf meiner Seite (Xcode 5 - iOS 7 - Gerät!):

itms-apps://iTunes.Apple.com/app/idYOUR_APP_ID

Verwenden Sie für Versionen unter iOS 7 die alte Version:

itms-apps://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
47
Idan

Einfache Alternative mit einer Codezeile: ** Siehe auch Simulatorkommentare unten **

http://iTunes.Apple.com/app/idAPP_ID

BEARBEITEN: Da iOS 7.1 den direkten Link zur Registerkarte "Rezensionen" im App Store ermöglicht, lohnt es sich, die zusätzlichen Codezeilen zu investieren, um direkt dorthin zu gelangen. Weitere Antworten finden Sie im Übrigen.

hier verwenden wir http: anstelle von itms-apps:, lass iOS den Rest der Arbeit erledigen

Ich erhalte die gleichen Ergebnisse beim Testen auf iOS 6.1- und 7-Geräten (iPad/iPhone/iPod touch 4)

Insbesondere führt diese Verknüpfung für iOS 6 den Benutzer zur Registerkarte Details und nicht zur Registerkarte Reviews.

Das Purple+Software link bringt den Benutzer in iOS 6 bis zur Registerkarte "Rezensionen". Dies ist offensichtlich vorzuziehen, wenn Sie wissen, wie das Betriebssystem überprüft wird.

Wichtiger Hinweis: Dies führt zu Fehlern im Simulator für iOS 5.1, 6.1 und 7.
Seite kann nicht geöffnet werden Safari kann die Seite nicht öffnen, da die Adresse ungültig ist (wir wissen, dass es sich um eine gültige URL außerhalb des Simulators handelt, in jedem Browser)

Nur um es klar zu machen: Auf iOS 7: http:// bietet die gleiche Erfahrung wie itms-apps: ohne merkliche Verzögerung.

* Beachten Sie das oben angegebene Verhalten des Simulators. Dies ist nicht ganz anders als der Versuch, über einen Simulator auf die Kamera zuzugreifen: Der Simulator ist nicht der Ort, um sie zu testen. *

18

Das Öffnen der Überprüfungsseite direkt aus der App ist in iOS7 möglich. Bitte benutze die folgende URL ...

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

Das wird auf jeden Fall funktionieren .. :)

17
Murali

Es ist nicht klar, von welchen iOS-Versionen dies unterstützt wird, aber als Teil von iOS 10.3 gibt es ein neuer Abfrageparameter , das zur URL hinzugefügt werden kann: action=write-review. Ich habe dies auf iOS 10.2 und 9.3.5 getestet und es funktioniert. Es funktioniert jedoch nicht unter iOS 7.1.2, daher wurde die Unterstützung zwischen iOS 8.0 und 9.3.5 hinzugefügt. Weitere Untersuchungen sind erforderlich!

Beispiel: https://iTunes.Apple.com/app/id929726748?action=write-review&mt=8

Dies öffnet den Dialog "Bewertung schreiben" , anstatt nur die Registerkarte "Bewertung" anzuzeigen.

16
Joseph Duffy

Der Review-Link ist in iOS9 wieder defekt. Beim Experimentieren habe ich herausgefunden, dass Apple) es wieder so gemacht hat, wie es vor iOS7 war. Also musst du Folgendes tun:

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

Wobei 247423477 Ihre 9-stellige App-ID ist (der Hauptunterschied ist, dass Sie nach der App-ID &onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software Anhängen müssen).

9
Ser Pounce
+ (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;
}
9
Will

Alle oben genannten Antworten sind mittlerweile veraltet (iOS 7, funktioniert aber möglicherweise). Daher empfehle ich die neue Methode Apple), Links zu den Apps bereitzustellen. Der Link für Ihre App stammt von iTunes (Kopierlink verwenden), dieser wird für die Verwendung in Code empfohlen:

Swift 3.

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

Oder besser - behandeln Sie die Option richtig und gehen Sie mit der Möglichkeit um, dass Sie den Link nicht erreichen können:

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)")
        }
    }
}

Ziel-C

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

dann kannst du APP_URL_STRING in deinem Code:

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

Beachten Sie, dass dies derzeit von Apple empfohlen wird, da die vorherige Methode zur Verarbeitung von Weiterleitungslinks veraltet ist und nicht unterstützt wird.

Der Link für alle Ihre Apps, wenn Sie mehr als eine haben:

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

Der obige App-Link wird für die Verwendung in Code oder Links empfohlen, die vom Benutzer nicht direkt gesehen werden. Wenn Sie einen Link bereitstellen möchten, der vom Benutzer gesehen und erinnert werden kann, verwenden Sie Folgendes: http://appstore.com/calcfast

5

Die Verwendung dieser URL war die perfekte Lösung für mich. Es führt den Benutzer direkt zum Write a Review section. Dank an @Joseph Duffy.

Versuchen Sie dies für einen Beispielcode:

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!!")
 }

Hier ist showAlert eine benutzerdefinierte Funktion für ein UIAlertController.

4

Ich habe dies, um die Produkt-ID automatisch zu erhalten und App Store Review und Links zur Produktseite zu generieren.

- (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];
}
}

App-Überprüfungsseite öffnen

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

Öffnen Sie die App Store-Seite der App

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

Es wird gesagt, dass dieser Fehler auf iOS7.1 behoben wird. hier lesen im Corona-Forum und hier auf dem iPhoneDevSDK .

2
Joselito