Pytanie ITunes sprawdza adres URL i iOS 7 (zapytaj użytkownika, aby ocenić naszą aplikację) AppStore pokazuje pustą stronę


Czy ktokolwiek wie, czy technika używana do poproszenia użytkownika o ocenę naszej aplikacji i otwarcie dla niego sklepu z aplikacjami bezpośrednio na stronie oceny nadal działa w systemie iOS 7?

Użyłem do otwarcia tego adresu URL z mojej aplikacji:

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

Wygląda jednak na to, że to już nie działa (AppStore pokazuje pustą stronę). Próbowałem również tego adresu URL bez szczęścia:

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

157
2017-09-19 22:03


pochodzenie


Po sprawdzeniu kodu źródłowego UAAppReviewManager wygląda na to, że rzeczywiście istnieje pb z iOS7. Dlatego używają standardowego adresu URL aplikacji, więc użytkownik musi szukać przycisku stawki: - / - Samuel
Wygląda na to, że link recenzji dla ios 7 nie działa. Zmienię swój kod na zwykły URL linku do aplikacji. Użytkownik będzie musiał kliknąć przycisk przeglądania. - Emmy
Drugi opublikowany przez Ciebie link działa teraz na iOS 7! Przechodzi na stronę przeglądu - Maximilian
dla mnie .... pierwszy URL wydaje się działać. Właśnie zamieniłem mój numer identyfikacyjny - Nilesh Kumar
Możliwy duplikat Link do sklepu z aplikacjami dla "oceń / sprawdź tę aplikację" - g00glen00b


Odpowiedzi:


Począwszy od iOS7 adres URL zmienił się i nie może kierować do strony opinii, ale tylko do aplikacji

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

Gdzie APP_ID należy zastąpić identyfikatorem aplikacji. Na podstawie identyfikatora aplikacji z pytania byłby następujący

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

Zwróć uwagę na ID przed numerem ... ten ciąg jest ID353372460, nie tylko 353372460

W przypadku wszystkich wersji wcześniejszych niż iOS7 należy użyć "starego" adresu URL, tylko te mogą prowadzić bezpośrednio do strony recenzji. Należy również pamiętać, że te połączenia będą działać na urządzeniach. Uruchomienie ich w symulatorze nic nie da, ponieważ symulator nie ma zainstalowanej aplikacji App Store.


Spójrz na przykład na Appirater dla wdrożenia. https://github.com/arashpayan/appirater

Nie mogę ci pomóc w szczegółach dotyczących gry na phonegapie (nigdy z niej nie korzystałeś). Zasadniczo sprowadza się do sprawdzenia wersji systemu iOS, z której korzysta użytkownik, a następnie używa starego adresu URL lub nowego adresu URL dla iOS7.


198
2017-09-19 23:01



W rzeczywistości otwiera to aplikację, a nie kartę recenzji. - Idan
Tak, to prawda, ale pod iOS7 na razie to najlepsze, co można w tej chwili osiągnąć. - Frank
W przeciwieństwie do iRate, MUSISZ użyć powyższego linku z informacją / LANGUAGE / app / idAPP_ID - Dan
Dzięki, Frank. StoreKit działał dobrze na to, czego potrzebowałem. - EricS
Chcesz usunąć język, Appirater również ma ten sam problem, jeśli urządzenie jest ustawione na język, który nie jest równoznaczny z iTunes Store, dostajesz pustą stronę (np. Brytyjski angielski), jeśli usuniesz bit języka, który wciąż działa, a sklep otwiera w języku właścicieli. - Chris


Poniższy adres URL działa idealnie na iOS 7.1:

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

gdzie xxxxxxxx to identyfikator Twojej aplikacji.

AKTUALIZACJA. Działa na iOS 9.3.4 i iOS 10 GM (przez Jeet)


165
2018-04-13 00:03



To powinna być teraz zaakceptowana odpowiedź, działa na iOS7.1 - danfordham
To jest zepsute ponownie w wersji 8.0 DP 5! Zgłoś go teraz jako błąd i miej nadzieję, że uda nam się go naprawić przez wydanie produkcyjne. - Cliff Ribaudo
Działa na mnie, aby przejść bezpośrednio do strony przeglądu App Store.app. Zbudowany z Xcode 6. Zweryfikowany w iOS 8.0, iOS 7.1.2, iPhone 5 i iPhone 4. - jclee
Nadal działa dobrze, iOS 8.1, Xcode 6 - Scott
Dowiedziałem się. Typ powinien zawsze być równy purpurowemu oprogramowaniu - to rzecz typu jabłko. - Matt Parkins


To działa na moim końcu (Xcode 5 - iOS 7 - Urządzenie!):

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

W wersjach niższych niż iOS 7 użyj starego:

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

47
2017-09-20 00:45



Daje to pusty ekran na urządzeniach z iOS7 (przy użyciu Xcode 5), to był adres URL, który wciąż używam w systemie iOS6. W przypadku iOS 7 używam tego, który został szczegółowo opisany w mojej odpowiedzi. Dziwne, że to działa dla ciebie. - Frank
Korzystam z następującego kodu [[UIApplication sharedApplication] openURL:[NSURL URLWithString:ITUNES_APP_URL_IOS7]]; - Frank
Masz rację, myliłem się. - Idan
self.appStoreID nawet nie kompiluje - ngb
Znowu jest zepsuty w iOS 8 DP5. Zacznij zgłaszać to jako błąd i miej nadzieję, że naprawią to przez produkcję! W przeciwnym razie znów będziemy czekać do 8.1. - Cliff Ribaudo


Prosta alternatywa jednej linii kodu:    ** Zobacz także komentarze do symulatora poniżej **

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

EDYCJA: Teraz, gdy iOS 7.1 pozwala na bezpośredni link do zakładki Recenzje w App Store, warto zainwestować dodatkowe linie kodu, aby dostać się tam bezpośrednio: zobacz inne odpowiedzi dla reszty.

tutaj używamy  http:  zamiast  itms-apps:, pozwól iOS wykonać resztę pracy

Mam takie same wyniki testowania na urządzeniach z iOS 6.1 i 7 (iPad / iPhone / iPod touch 4)

W szczególności to skrót, dla iOS 6 przenosi użytkownika do Details karta, a nie Reviews patka.

The Purple+Software link przenosi użytkownika aż do zakładki Opinie w systemie iOS 6, co jest oczywiście preferowane, jeśli wiesz, jak sprawdzić system operacyjny.

Ważna uwaga: Spowoduje to błąd w symulatorze dla iOS 5.1, 6.1 i 7.
Nie można otworzyć strony Safari nie może otworzyć strony, ponieważ adres jest nieprawidłowy (wiemy, że jest prawidłowym adresem URL poza symulatorem, w dowolnej przeglądarce)

Gwoli ścisłości: Na iOS 7: http:// zapewnia takie samo doświadczenie jak itms-apps: bez zauważalnego opóźnienia.

 * pamiętaj, że zachowanie symulatora opisane powyżej. Nie jest to całkowicie odmienne od próby uzyskania dostępu do kamery za pomocą symulatora: symulator nie jest miejscem, w którym można go przetestować. *


18
2017-09-25 10:28



Nie wiem, jak dokładnie odpowiadasz na pytanie. Ten link, który podałeś nie robi tego, o co prosi OP, czyli otwiera stronę "recenzje" w App Store. Bezpośrednie połączenie z samą aplikacją jest banalne. - Asem H.
Biorąc pod uwagę, że ty żargon link bezpośrednio do recenzji w iOS7, wydaje się to całkiem rozsądnym rozwiązaniem. - Nick Cecil
Chociaż obecnie jest to prawda, nie ma gwarancji, że http będzie nadal prowadzić do aplikacji App Store. Apple może zdecydować w przyszłości, aby wysyłać linki do aplikacji http do Safari, kto wie? Bezpieczniejsze korzystanie z bezpośredniego protokołu. - poetmountain
Poza tym, że Apple zmienił bezpośredni protokół, więc nie działa on w iOS7, chyba że używasz innego formatu. Więc wcale nie "bezpieczniej". - Real World
Jeżeli chodzi o http: vs itms-apps: Udało mi się połączyć bezpośrednio z kartą recenzji za pomocą itms-apps a nie z http na iOS 7.1.1. - zekel


Otwieranie strony recenzji bezpośrednio z aplikacji jest możliwe w iOS7. Użyj następującego adresu URL ...

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

To na pewno zadziała .. :)


17
2018-06-16 09:59



Wydaje się nie działać w systemie iOS 8, czy mam rację? - Roman B.
Nie mam pojęcia ... Czy sprawdziłeś w iOS8? - Murali
Nie. Złóż raport o błędzie! - Cliff Ribaudo
Jestem na iOS 8.1.1, a ten adres URL przechodzi bezpośrednio do strony przeglądu. - mrzzmr
Co to jest "type = Purple + Software" w ciągu znaków? - Darko


Nie jest jasne, które wersje systemu iOS są obsługiwane, ale jako część iOS 10.3 istnieje nowy parametr zapytania które można dodać do adresu URL: action=write-review. Przetestowałem to na iOS 10.2 i 9.3.5 i to działa. Jednak nie działa on w systemie iOS 7.1.2, dlatego dodano obsługę między systemem iOS 8.0 i 9.3.5. Wymagane są dalsze badania!

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

Spowoduje to otwarcie dialogu "Napisz recenzję", a nie tylko wyświetlanie karty recenzji.


15
2018-01-25 17:12



Pozdrawiam bro :) To było jak dotąd najlepsze rozwiązanie. Do rzeczy i całkowicie służy temu celowi. Dla mnie jest to akceptowalna odpowiedź. Testowany do pracy w systemach 9.3.5 i iOS 10.2.1. Bezpośrednio otwiera Napisz recenzję. Użyłem tego: itms-apps: //itunes.apple.com/gb/app/id1136613532? Action = write-review & mt = 8, aby użytkownik bezpośrednio napisał recenzję. - Ankit Kumar Gupta
... ale czy gb nie odnosi się do Wielkiej Brytanii? Jeśli tak, to będzie to dotyczyć wszystkich użytkowników w sklepie App Store w Wielkiej Brytanii? - Robert Gummesson
@Robert Yeh, link, który pierwotnie miałem / gb na początku. Myślę, że nadal otwierałoby się na sklep użytkownika, ale usunąłem go z odpowiedzi - Joseph Duffy
Działa na iOS10, ale nie działa w systemie iOS11 (przy użyciu wersji beta 9). Wszelkie pomysły, jeśli coś się zmieniło? - Z S
Działa to w iOS 11.1.1. Dzięki! Powinna być zaakceptowaną odpowiedzią, @astrocb - Vexir


Link do recenzji ponownie zepsuł się w iOS9. Robiąc pewne eksperymenty, doszedłem do wniosku, że Apple powrócił do tego, jak było przed iOS7. Musisz więc:

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

Gdzie 247423477 to twój 9-cyfrowy identyfikator aplikacji (główna różnica polega na tym, że musisz dołączyć &onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software po identyfikatorze aplikacji).


9
2018-01-06 00:18



Działa na iOS 9.2, dzięki. - Jerry Zhao
działa na 9.3.4 dzięki! - kishorer747


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

8
2018-06-25 04:02



Appirater został zaktualizowany ponownie, aby naprawić inny problem. Główna zmiana polegała na zmianie czeku < 7.1 do < 8.0 tak, że templateReviewURLiOS7 link jest używany dla wszystkich wersji 7.x systemu iOS, zamiast używania starego linku do wszystkiego pomiędzy> = 7,1 i <8,0. - Markus A.


Wszystkie powyższe odpowiedzi zostały już uznane za nieaktualne (iOS 7, ale mogą działać), dlatego udostępniam nowy sposób, w jaki Apple zaleca umieszczanie linków do Aplikacji. Link do Twojej aplikacji to link z iTunes (użyj Copy Link), ten jest polecany do użycia w kodzie:

Swift 3.0

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

Lub lepiej - traktuj opcjonalnie poprawnie i obsługuj możliwość nieosiągnięcia połączenia:

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

Cel C

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

wtedy możesz zadzwonić APP_URL_STRING w twoim kodzie:

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

Zauważ, że jest to obecnie zalecana metoda firmy Apple, ponieważ poprzednia metoda przetwarzania przekierowań została wycofana i nie jest obsługiwana.

Link do wszystkich Twoich aplikacji, jeśli masz więcej niż jeden:

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

Powyższy link do aplikacji jest zalecany do użycia w kodzie lub linkach, które nie są widoczne bezpośrednio przez użytkownika. Jeśli chcesz podać link, który może być widoczny i zapamiętany przez użytkownika, skorzystaj z: http://appstore.com/calcfast


5
2018-05-23 17:18



to nie prowadzi do strony recenzji - ngb
@ngb możesz tylko połączyć się ze stroną Apps lub stroną programisty. Proszę, w przypadku głosowania w dół podaj ważny powód lub niepowodzenie. Nie wyświetlam linków do strony opinii, ale użytkownik może łatwo kliknąć stawkę. - Hannes Sverrisson
To jest poprawna metoda zalecana przez Apple. Coś jeszcze to hack. - Martin Marconcini
@Bingo Co masz na myśli? Link, który podaję, kończy się w & mt = 8 ans linkami do strony recenzji. W mojej odpowiedzi mam na myśli to, co Apple zaleca, twój link może działać teraz, a może w twoim przypadku, ale czy działa on dla użytkowników z innego kraju, czy jesteś pewien, że to się nie zmieni? - Hannes Sverrisson


Korzystanie z tego adresu URL było dla mnie idealnym rozwiązaniem. Przejmuje użytkownika bezpośrednio do Write a Review section. Napisy dla @Joseph Duffy.

Aby pobrać przykładowy kod, spróbuj tego:

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

Tutaj showAlert jest funkcją niestandardową dla UIAlertController.


4
2018-03-08 10:20





Mam to, aby uzyskać Identyfikator produktu automatycznie i generować Recenzje aplikacji App Store i linki do produktów.

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

Otwórz stronę przeglądu aplikacji

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

Otwórz stronę App Store aplikacji

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

3
2018-05-26 03:43



nie próbowałem, ale lubię to .. miło! - Yitzchak