URL обзора ITunes и iOS 7 (попросите пользователя оценить наше приложение) AppStore показывает пустую страницу

Кто-нибудь знает, работает ли метод, используемый, чтобы попросить пользователя оценить наше приложение и открыть для него App Store прямо на странице рейтинга, на iOS 7?

Раньше я открывал этот URL из своего приложения:

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

Но похоже, что он больше не работает (в AppStore отображается пустая страница). Я также пробовал этот URL без удачи:

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

person Samuel    schedule 19.09.2013    source источник
comment
Посмотрев на исходный код UAAppReviewManager, похоже, что действительно есть pb с iOS7. Таким образом, они используют стандартный URL-адрес приложения, поэтому пользователю нужно искать кнопку оценки: - /   -  person Samuel    schedule 20.09.2013
comment
Похоже, ссылка на обзор для ios 7 не работает. Я заменю свой код на обычный URL-адрес ссылки приложения. Пользователь должен будет нажать кнопку обзора.   -  person Emmy    schedule 02.11.2013
comment
Вторая ссылка, которую вы разместили, теперь работает на iOS 7! Переход прямо на страницу обзора   -  person Maximilian Litteral    schedule 31.03.2014
comment
для меня .... кажется, что первый URL работает. Я только что заменил свой идентификационный номер   -  person Nilesh Kumar    schedule 13.09.2016
comment
Возможный дубликат ссылки в магазине приложений для оценки / обзора этого приложения   -  person g00glen00b    schedule 08.03.2017


Ответы (12)


Начиная с iOS7, URL-адрес изменился и не может указывать на страницу обзора, а только в приложение.

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

Где APP_ID необходимо заменить на ваш идентификатор приложения. Основываясь на идентификаторе приложения из вопроса, это будет следующее

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

Обратите внимание на id перед числом ... это строка id 353372460, а не просто 353372460

Для чего-либо, предшествующего iOS7, необходимо использовать «старый» URL-адрес, только он может привести вас прямо на страницу обзора. Также обратите внимание, что эти вызовы будут работать только на устройствах. Запуск их в симуляторе ничего не даст, поскольку на симуляторе не установлено приложение App Store.


Взгляните, например, на Appirater для реализации. https://github.com/arashpayan/appirater

Не могу помочь вам с особенностями телефонного разговора (никогда не использовал). Но в основном это сводится к проверке версии iOS, которую использует ваш пользователь, а затем либо к использованию старого URL-адреса, либо к новому URL-адресу iOS7.

person Frank    schedule 19.09.2013
comment
Фактически это открывает приложение, а не вкладку обзора. - person Idan; 20.09.2013
comment
Да, это правда, но на данный момент под iOS7 это лучшее, что можно сделать на данный момент. - person Frank; 20.09.2013
comment
Новое приложение Facebook показывает страницу магазина приложений внутри самого приложения в iOS 7. Кто-нибудь знает, как они это делают? - person EricS; 21.09.2013
comment
@EricS Это делается с помощью класса SKStoreProductViewController. И iRate, и Appirater поддерживают этот метод. Вы также можете прочитать об этом в этом руководстве для мобильных устройств. tutsplus.com/tutorials/iphone/ - person Frank; 22.09.2013
comment
В отличие от iRate, вы ДОЛЖНЫ использовать ссылку выше с информацией / LANGUAGE / app / idAPP_ID. - person Dan; 22.09.2013
comment
Странный код Storekit вообще не открывал для меня страницу приложения на ios7; пришлось поставить отдельное условие для использования URL вместо SK на ios7 - person Dan; 22.09.2013
comment
Вы хотите удалить язык, Appirater также имеет ту же проблему, если устройство настроено на язык, который не соответствует магазину iTunes, вы получаете пустую страницу (например, британский английский), если вы удалите языковой бит, он все равно будет работать, и магазин откроется. на языке владельцев. - person Chris; 22.09.2013
comment
@EricS GotSKStoreProductViewController, чтобы открыть магазин приложений в iOS 7. Но я обнаружил, что физически не могу нажать на кнопку «Написать отзыв» в нем! В модальном представлении работают все остальные кнопки, кроме этой. Кто-нибудь еще заметил это??? Я также проверил приложение FB на iOS 7, которое использует SKStoreProductViewController, и я также не могу нажать на нем кнопку «Написать отзыв». - person nvrtd frst; 24.09.2013
comment
Я только что попробовал это в приложении Facebook, и у меня такая же проблема. Очевидно, Apple отключила это в iOS 7. github.com/UrbanApps/UAAppReviewManager говорит, что SKStoreProductViewController не позволяет пользователь, чтобы написать обзор (по состоянию на iOS 7 GM)! - person EricS; 24.09.2013
comment
Могу ли я реализовать Оценить нас / Обзор в самой первой версии приложения? - person Gajendra K Chauhan; 23.04.2014

Следующий URL-адрес отлично работает на iOS 7.1:

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

где xxxxxxxx - это идентификатор вашего приложения.

ОБНОВЛЕНИЕ. Работает на iOS 9.3.4 и iOS 10 GM (от Jeet)

person mkll    schedule 13.04.2014
comment
Похоже, это открывает вкладку Reviews в 7.1 и открывает общую Details в 7.0.3. Молодец для меня ... - person Aviel Gross; 07.05.2014
comment
Невозможно открыть вкладку Reviews в 7.0.X напрямую. - person mkll; 16.05.2014
comment
Это снова сломано в 8.0 DP 5! Сообщите об этом сейчас как об ошибке и надейтесь, что мы исправим ее в производственном выпуске. - person Cliff Ribaudo; 06.08.2014
comment
У меня работает, чтобы перейти прямо на страницу обзора App Store.app. Создан с помощью Xcode 6. Проверено в iOS 8.0, iOS 7.1.2, iPhone 5 и iPhone 4. - person jclee; 24.09.2014
comment
У меня отлично работает, iOS 8 - person Jasmeet; 14.10.2014
comment
Также работает на iOS 6.1: iPod touch 4-го поколения (в дополнение к iPad Mini Retina iOS 8.1 и iPhone 6) - person Jason R. Escamilla; 10.11.2014
comment
Какой тип должен быть установлен в URL-адресе? - person Matt Parkins; 11.12.2014
comment
Я выяснил. Тип всегда должен соответствовать фиолетовому программному обеспечению - это вещь яблочная. - person Matt Parkins; 16.12.2014
comment
Он корректно работает как на iPhone, так и на iPad в iOS 8.3. Только что протестировал :) Спасибо! - person alones; 11.05.2015
comment
Прекрасно работает на iPod Gen 5, iOS 9.0.1. - person haxpor; 01.10.2015
comment
Прекрасно работает на iPhone 5s, iOS 9.1 Спасибо! - person Resty; 08.12.2015
comment
Работает на iPhone 6s iOS9.2 :) - person Jerry Zhao; 19.02.2016
comment
Необходима каждая часть этого URL-адреса, я попытался избавиться от различных параметров запроса, и он начал открывать Apple Music, ха-ха - person Kdawgwilk; 06.05.2016
comment
Я могу подтвердить, что это также работает на iOS 10 Golden Master. - person Jacob King; 12.09.2016
comment
Работает на iOS 9.3.4 и iOS 10 GM. - person Jeet; 13.09.2016
comment
По моему опыту, это открывает Safari, а затем мгновенно перенаправляет в App Store на странице обзора. Вы, парни / девушки, видите то же самое? - person Kenneth Jennings; 13.12.2016
comment
Примечание: как указано ниже, это работает только на устройствах, а не на симуляторе. - person formica; 19.03.2017

Это работает на моей стороне (Xcode 5 - iOS 7 - Устройство!):

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

Для версий ниже iOS 7 используйте старую:

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
person Idan    schedule 20.09.2013
comment
Это дает пустой экран на моих устройствах iOS7 (с использованием Xcode 5), это был URL-адрес, который я все еще использую для iOS6. Для iOS 7 я использую тот, который подробно описан в моем ответе. Странно, что у тебя работает. - person Frank; 20.09.2013
comment
@Frank, как открыть эту ссылку? Я использую iRate, и он использует эту ссылку, возможно, попробуйте использовать ее и проверить, в чем именно отличие от вашего кода. - person Idan; 20.09.2013
comment
Я использую следующий код [[UIApplication sharedApplication] openURL:[NSURL URLWithString:ITUNES_APP_URL_IOS7]]; - person Frank; 20.09.2013
comment
self.appStoreID даже не компилируется - person ngb; 11.01.2014
comment
@ngb Вы правы, я предполагаю, что использую iRate, но это слишком сложно именно по этой причине. Я удалил и исправил. Спасибо! - person Idan; 11.01.2014
comment
Он снова сломан в iOS 8 DP5. Начните сообщать об этом как об ошибке и надейтесь, что они исправят ее в процессе производства! Иначе будем ждать до 8.1 снова. - person Cliff Ribaudo; 06.08.2014
comment
@CliffRibaudo Да, умные люди удалили исправления, и я не собираюсь писать это снова. Прости. - person Idan; 06.08.2014
comment
@idan, воспользуйтесь нашим сервисом (AskingPoint), и позвольте нам позаботиться об этом за вас. Мы обрабатываем это на стороне сервера и можем менять его на лету, поэтому вам не нужно выпускать релиз для обновления :) - person Cliff Ribaudo; 07.08.2014
comment
@CliffRibaudo Я знаю, как это сделать, чтобы работать всегда, и прикрепил простую библиотеку, которая проверяет все это во время выполнения (также относится к iOS 8), но люди здесь решили удалить это из моего ответа. Я точно знаю, что ответ сейчас неверный и не всегда будет давать необходимые результаты. т.е. во многих случаях ссылка будет неработающей. Изменение этого со стороны сервера на самом деле не помогает, потому что иногда это связано с ОС или устройством. - person Idan; 07.08.2014

Простая альтернатива, состоящая из одной строки: ** также см. комментарии к симулятору ниже **

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

РЕДАКТИРОВАТЬ. Теперь, когда iOS 7.1 позволяет напрямую ссылаться на вкладку «Обзоры» в App Store, стоит потратить дополнительные строки кода, чтобы попасть туда напрямую: для остальных см. другие ответы.

здесь мы используем http: вместо itms-apps:, пусть iOS сделает остальную работу

Я получаю те же результаты тестирования на устройствах iOS 6.1 и 7 (iPad / iPhone / iPod touch 4)

В частности, этот ярлык для iOS 6 занимает пользователя на вкладку Details, а не на вкладку Reviews.

Ссылка Purple+Software переводит пользователя на вкладку «Обзоры» в iOS 6, что, очевидно, предпочтительнее, если вы знаете, как проверить ОС.

Важное примечание: это вызовет ошибку в симуляторе для iOS 5.1, 6.1 и 7.
Невозможно открыть страницу Safari не может открыть страницу, потому что адрес недействителен (мы знаем, что это действительный URL вне симулятора, в любом браузере)

Для ясности: в iOS 7: http:// обеспечивает то же самое, что и itms-apps:, без заметной задержки.

* имейте в виду, что поведение симулятора указано выше. Это не совсем похоже на попытку доступа к камере через симулятор: симулятор - не место для проверки. *

person Jason R. Escamilla    schedule 25.09.2013
comment
Я не уверен, как именно вы отвечаете на вопрос. Эта ссылка, которую вы предоставили, не выполняет то, что просит OP, а именно открывает страницу отзывов в App Store. Ссылка непосредственно на само приложение тривиальна. - person Asem H.; 23.10.2013
comment
Учитывая, что вы не можете напрямую ссылаться на обзоры в iOS7, это кажется вполне разумным решением. - person Nick Cecil; 25.10.2013
comment
Хотя в настоящее время это так, нет никакой гарантии, что http будет продолжать перенаправляться в приложение App Store. Apple может решить в будущем отправлять HTTP-ссылки на приложения в Safari, кто знает? Безопаснее использовать прямой протокол. - person poetmountain; 26.10.2013
comment
За исключением того, что Apple изменила прямой протокол, поэтому он не работает в iOS7, если вы не используете другой формат. Так что совсем не безопаснее. - person Real World; 18.11.2013
comment
Важное примечание: это вызовет ошибку в симуляторе для iOS 5.1, 6.1 и 7. Невозможно открыть страницу Safari не может открыть страницу, потому что адрес недействителен (мы знаем, что это действительный URL вне симулятора в любом браузере) Да! !! Это сводило меня с ума !! работать только на устройстве, а не на симуляторе по состоянию на 03.01.14 - person Dave Kozikowski; 03.01.2014
comment
Что касается http: и itms-apps:, мне удалось напрямую перейти на вкладку обзоров с itms-apps, а не с http в iOS 7.1.1. - person zekel; 05.07.2014

Неясно, в каких версиях iOS это поддерживается, но как часть iOS 10.3 существует новый параметр запроса, который можно добавить к URL: action=write-review. Я тестировал это на iOS 10.2 и 9.3.5, и он работает. Однако это не работает в iOS 7.1.2, поэтому поддержка была добавлена ​​между iOS 8.0 и 9.3.5. Требуется дальнейшее расследование!

Пример: https://itunes.apple.com/app/id929726748?action=write-review&mt=8

При этом откроется диалоговое окно «Написать отзыв», а не просто отобразится вкладка обзора.

person Joseph Duffy    schedule 25.01.2017
comment
Ура, братан :) На данный момент это было лучшее решение. Точно и полностью служит цели. Для меня это приемлемый ответ. Протестировано для работы на 9.3.5 и iOS 10.2.1. Сразу открывается написать отзыв. Я использовал это: itms-apps: //itunes.apple.com/gb/app/id1136613532? Action = write-review & mt = 8, чтобы пользователь мог напрямую написать отзыв. - person Ankit Kumar Gupta; 08.03.2017
comment
... но разве gb не относится к Великобритании? Если да, то все пользователи будут перенаправлены в британский App Store? - person Robert Gummesson; 10.06.2017
comment
@Robert Да, ссылка, которую я изначально имел / gb в начале. Я думаю, что он все равно будет открыт для магазина пользователя, но я удалил его из ответа - person Joseph Duffy; 20.06.2017
comment
Он работает в iOS10, но, похоже, не работает в iOS11 (с использованием бета 9). Есть идеи, если что-то изменится? - person Z S; 04.09.2017
comment
Это работает в iOS 11.1.1. Спасибо! Должен быть принятый ответ, @astrocb - person Vexir; 13.11.2017

Открытие страницы обзора прямо из приложения возможно в iOS7. Используйте следующий URL ...

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

Это точно сработает .. :)

person Murali    schedule 16.06.2014
comment
Понятия не имею .. Вы проверяли в iOS8? - person Murali; 22.07.2014
comment
Нет. Отправьте отчет об ошибке! - person Cliff Ribaudo; 06.08.2014
comment
Я использую iOS 8.1.1, и этот URL-адрес ведет прямо на страницу обзора. - person mrzzmr; 06.01.2015
comment
Что такое type = Purple + Software в строке? - person Darko; 24.11.2015

Ссылка на обзор снова не работает в iOS9. Поэкспериментировав, я понял, что Apple вернула его к тому, что было до iOS7. Итак, вам необходимо сделать:

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

Где 247423477 - это ваш 9-значный идентификатор приложения (основное отличие состоит в том, что вы должны добавить &onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software после идентификатора приложения).

person Ser Pounce    schedule 06.01.2016

Все приведенные выше ответы устарели (iOS 7, но может работать), поэтому я предлагаю новый способ, которым Apple рекомендует предоставлять ссылки на приложения. Ссылка для вашего приложения - это ссылка из iTunes (используйте Копировать ссылку), ее рекомендуется использовать в коде:

Swift 3.0

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

Или лучше - правильно относитесь к необязательному и учитывайте вероятность того, что не удастся добраться до ссылки:

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

Цель-C

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

тогда вы можете вызвать APP_URL_STRING в своем коде:

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

Обратите внимание, что сейчас Apple рекомендует этот способ, поскольку предыдущий метод обработки перенаправляющих ссылок устарел и не поддерживается.

Ссылка для всех ваших приложений, если у вас их несколько:

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

Ссылку на приложение выше рекомендуется использовать в коде или ссылках, которые не видны пользователю напрямую. Если вы хотите предоставить ссылку, которую может увидеть и запомнить пользователь, используйте следующее: http://appstore.com/calcfast

person Sverrisson    schedule 23.05.2014
comment
это не ссылка на страницу отзывов - person ngb; 16.08.2014
comment
@ngb вы можете ссылаться только на приложения или страницу разработчика. Пожалуйста, при отрицательном голосовании укажите уважительную причину отказа. Я не показываю ссылки на страницу обзора, но пользователь может легко нажать на оценку. - person Sverrisson; 16.08.2014
comment
Это правильный метод, рекомендованный Apple. Все остальное - это взлом. - person Martin Marconcini; 12.01.2016
comment
@ Бинго Что ты имеешь в виду? Ссылка, которую я предоставляю, заканчивается & mt = 8 ссылками на страницу обзора. В своем ответе я имею в виду то, что рекомендует Apple, ваша ссылка может работать сейчас и, возможно, в вашем случае, но работает ли она для пользователей в другой стране или вы уверены, что она не изменится? - person Sverrisson; 09.07.2016

Использование этого URL-адреса было для меня идеальным решением. Он переводит пользователя прямо в Write a Review section. Кредиты @Joseph Duffy.

Для примера кода попробуйте следующее:

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

Здесь showAlert - это настраиваемая функция для UIAlertController.

person Ankit Kumar Gupta    schedule 08.03.2017

У меня есть это для автоматического получения идентификатора продукта и создания ссылок на Обзор магазина приложений и страницу продукта.

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

Открыть страницу обзора приложения

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

Открыть страницу приложения в App Store

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

Говорят, что эта ошибка будет исправлена ​​в iOS7.1. Прочтите здесь на форуме corona и здесь, на iPhoneDevSDK.

person Joselito    schedule 12.02.2014
comment
К сожалению, iOS 7.1 сейчас отсутствует и все еще не работает. - person user1139733; 12.03.2014
comment
Он снова работает для меня на iOS 7.1 (переход напрямую на страницу отзывов), и другие указали то же самое в ссылке devsdk. Мне достаточно было сменить схему с itms-apps на http, и она отлично работает на iOS 7.1. В iOS 7.0 он по-прежнему переходит только на главную страницу приложения, но, по крайней мере, http-ссылка работает, в отличие от старой ссылки itms-apps, которая показывала бы только белую страницу. - person stonemonk; 11.04.2014
comment
Теперь я могу с уверенностью подтвердить, что старый метод (Purple + Software) безупречно работает в iOS7.1 Вы можете увидеть доказательство в моем приложении: j.mp/josegg На главном экране нажмите настройки -› нажмите Получить бесплатные Js - ›затем нажмите Оценить нас -› вы попадете прямо на вкладку обзора страницы моего приложения в магазине приложений (очевидно, только работает для iOS 7.1+ или iOS 6.1.4-) - person Joselito; 22.04.2014

person    schedule
comment
Appirater был снова обновлен, чтобы исправить другую проблему. Основное изменение заключалось в изменении проверки с < 7.1 на < 8.0, чтобы ссылка templateReviewURLiOS7 использовалась для всех версий iOS 7.x, а не использовала старую ссылку для всего между ›= 7.1 и‹ 8.0. - person Markus A.; 29.07.2015