ITunes review URL i iOS 7 (Poproś użytkownika o ocenę naszej aplikacji) AppStore Pokaż pustą stronę
Czy ktoś wie, czy technika użyta do poproszenia użytkownika o ocenę naszej aplikacji i otwarcie dla niego App Store bezpośrednio na stronie oceny nadal działa na iOS 7 ?
Kiedyś otwierałem ten adres 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
Ale wygląda na to, że już nie działa (AppStore pokazuje pustą stronę). Wypróbowałem również ten adres URL bez powodzenia:
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?pageNumber=0&sortOrdering=1&type=Purple+Software&mt=8&id=353372460
12 answers
Począwszy od iOS7 adres URL zmienił się i nie może kierować strony recenzji, 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 będzie to następujące
itms-apps://itunes.apple.com/app/id353372460
Zwróć uwagę na id przed numerem ... ten ciąg znaków to id 353372460, a nie tylko 353372460
W przypadku czegokolwiek przed iOS7 należy użyć 'starego' adresu URL, tylko te mogą Cię bezpośrednio przejść do strony recenzji. Ty należy również pamiętać, że wywołania te będą działać tylko na urządzeniach . Uruchomienie ich w symulatorze nic nie da, ponieważ symulator nie ma zainstalowanej aplikacji App Store.
Spójrz na przykład Appirater dla implementacji. https://github.com/arashpayan/appirater
Nie mogę ci pomóc ze specyfikacją phonegap (nigdy jej nie używałem). Ale w zasadzie sprowadza się to do sprawdzenia wersji iOS, którą uruchamia użytkownik, a następnie użyć starego adresu URL lub następnie nowy URL iOS7.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-11 22:03:57
Poniższy adres URL działa doskonale 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
jest Twoim ID aplikacji.
UPDATE . Działa na iOS 9.3.4 i iOS 10 GM (by Jeet)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-13 15:23:16
To działa na moim końcu (Xcode 5 - iOS 7 - Urządzenie!):
itms-apps://itunes.apple.com/app/idYOUR_APP_ID
Dla wersji 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-17 19:30:39
Jednolinijkowa prosta alternatywa: * * Zobacz także komentarze symulatora poniżej **
http://itunes.apple.com/app/idAPP_ID
EDIT: teraz, gdy iOS 7.1 umożliwia bezpośrednie łącze do karty 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:
, niech iOS zrobi resztę pracy
Otrzymuję te same wyniki badań na urządzenia z systemem iOS 6.1 i 7 (ipad/iPhone/iPod touch 4)
W szczególności, ten Skrót, dla iOS 6 przenosi użytkownika do karty Details
, a nie do karty Reviews
.
Link Purple+Software
przenosi użytkownika do zakładki recenzje w 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żna otworzyć strony, ponieważ adres jest nieprawidłowy (wiemy, że jest to poprawny adres URL poza symulatorem, w dowolnej przeglądarce)
Dla jasności: na iOS 7: http://
zapewnia to samo doświadczenie co itms-apps:
bez zauważalnego opóźnienia.
* należy pamiętać, że zachowanie symulatora opisane powyżej. Nie jest to całkowicie odmienne od próby dostępu do kamery przez symulator: symulator nie jest miejscem, aby go przetestować. *
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-29 06:23:23
Otwieranie strony recenzji bezpośrednio z aplikacji jest możliwe w iOS7. Proszę użyć 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.. :)Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-16 09:59:26
Nie jest jasne, które wersje iOS są obsługiwane, ale jako część iOS 10.3 istnieje nowy parametr zapytania, który można dodać do adresu URL: action=write-review
. Przetestowałem to na iOS 10.2 i 9.3.5 i działa. Jednak nie działa na iOS 7.1.2, więc wsparcie zostało dodane między iOS 8.0 i 9.3.5. Dalsze śledztwo jest wymagane!
Przykład: https://itunes.apple.com/app/id929726748?action=write-review&mt=8
Spowoduje to otwarcie " Napisz recenzję" dialog , a nie tylko Pokazywanie zakładki recenzja.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-20 17:24:54
Link do recenzji po raz kolejny został przerwany w iOS9. Robiąc pewne eksperymenty, zorientowałem się, że Apple przywróciło go z powrotem do tego, jak było przed iOS7. Więc musisz to zrobić:
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 ID aplikacji).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-06 00:18:11
+ (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;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-16 12:01:34
Wszystkie powyższe odpowiedzi zostały już przestarzałe (iOS 7, ale może działać) dlatego podaję nowy sposób, w jaki Apple zaleca dostarczanie linków do aplikacji. Link do Twojej aplikacji to ten z iTunes( użyj Kopiuj Link), ten jest zalecany 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 radź sobie z możliwością nieosiągnięcia linku:
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"
Wtedy możesz zadzwonić APP_URL_STRING
w Twój kod:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: APP_URL_STRING] options:@{} completionHandler:nil];
Zauważ, że jest to teraz zalecany sposób przez Apple, ponieważ poprzednia metoda przetwarzania linków przekierowujących została przestarzała i nie jest obsługiwana.
Link do wszystkich Twoich aplikacji, Jeśli masz więcej niż jedną:
#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, Użyj następującego:
http://appstore.com/calcfast
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-07 17:20:45
Użycie tego adresu URL było dla mnie idealnym rozwiązaniem. Przenosi użytkownika bezpośrednio do Write a Review section
. Podziękowania dla @ Joseph Duffy.
Dla przykładowego kodu 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
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-08 10:20:24
Mam to, aby automatycznie uzyskać ID Produktu i wygenerować App Store Review i linki do strony produktu.
- (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ę recenzji 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]];
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-26 03:43:56
Mówi się, że ten błąd zostanie naprawiony na iOS7.1. przeczytaj tutaj na forum corona, a tutaj na iPhoneDevSDK .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-16 11:59:50