Ссылка в магазине приложений на "оценить / просмотреть это приложение" - PullRequest
178 голосов
/ 26 июня 2010

Я хочу добавить в свое приложение функцию «оценить / просмотреть это приложение».

Есть ли способ напрямую связаться с экраном в магазине приложений, где они проверяют приложение?Таким образом, клиент не должен переходить по главной ссылке приложения.Спасибо.

РЕДАКТИРОВАТЬ: начисление вознаграждения за это из-за отсутствия ответа.Просто чтобы убедиться, что это кристально ясно: я знаю, что могу сослаться на страницу своего приложения в магазине и попросить пользователя нажать оттуда, чтобы перейти к экрану «Просмотр этого приложения».Вопрос в том, можно ли напрямую ссылаться на экран «Просмотр этого приложения», чтобы им ничего не нажималось.

Ответы [ 26 ]

339 голосов
/ 02 июля 2010

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

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

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

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

Для iOS 8 или более поздней версии:

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

Фрагмент кода (вы можете просто скопировать и вставить его):

#define YOUR_APP_STORE_ID 545174222 //Change this one to your ID

static NSString *const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%d";
static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d";

[NSURL URLWithString:[NSString stringWithFormat:([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f)? iOS7AppStoreURLFormat: iOSAppStoreURLFormat, YOUR_APP_STORE_ID]]; // Would contain the right link
44 голосов
/ 08 июля 2016

Обновление:

Swift 4.0, Xcode 9.1

Проверено на реальном устройстве iOS 11.x (гарантия работы)

let appID = "Your App ID on App Store"
let urlStr = "itms-apps://itunes.apple.com/app/id\(appID)" // (Option 1) Open App Page    
let urlStr = "itms-apps://itunes.apple.com/app/viewContentsUserReviews?id=\(appID)" // (Option 2) Open App Review Tab


if let url = URL(string: urlStr), UIApplication.shared.canOpenURL(url) {
    if #available(iOS 10.0, *) {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
    } else {
        UIApplication.shared.openURL(url)
    }
}

openURL (_ :) устарела с iOS 10.

38 голосов
/ 08 февраля 2013

Все, что написано выше, правильно.Просто образец для вставки в приложение и замены {YOUR APP ID} на фактический идентификатор приложения, взятый из iTunesconnect для отображения страницы обзора.Обратите внимание, как было сказано выше, что он не работает на симуляторе - только на устройстве.
- Исправление из-за изменений в ios 7.

NSString * appId = @"{YOUR APP ID}";
NSString * theUrl = [NSString  stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%@&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software",appId];
if ([[UIDevice currentDevice].systemVersion integerValue] > 6) theUrl = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@",appId];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:theUrl]];
32 голосов
/ 16 августа 2017

РЕДАКТИРОВАТЬ: iOS 11 Solution

Это решение моего первоначального ответа (см. Ниже).При использовании iOS 11 будет работать следующий формат ссылок:

https://itunes.apple.com/us/app/appName/idAPP_ID?mt=8&action=write-review

Просто замените APP_ID на ваш конкретный идентификатор приложения.Ключом для работы ссылки является код страны .Ссылка выше использует код us, но на самом деле не имеет значения, какой код используется.Пользователь будет автоматически перенаправлен в свой магазин.

Обновление iOS 11:

Похоже, что ни одно из решений, представленных в других ответах для прямого доступа к странице обзора, не работает на iOS 11.

Скорее всего, проблема в том, что на странице приложения в приложении App Store для iOS 11 NOT больше нет вкладки Review.Вместо этого обзоры теперь расположены прямо под описанием и скриншотами.Конечно, все еще можно было бы напрямую добраться до этого раздела (например, с помощью некоторого якоря), но кажется, что это не поддерживается /, предназначенное Apple.

Использование одной из следующих ссылок больше не работает.Они по-прежнему переносят пользователей в приложение App Store , но только на пустую страницу :

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

Каждый, кто все еще использует эти ссылки, должен обновить свои приложения как можно скорее ,потому что направление пользователей на пустую страницу App Store, скорее всего, не то, что вы хотели.

Ссылки, которые ссылаются не на страницу обзора, а на страницу приложения, все еще работают, например,

itms-apps://itunes.apple.com/app/idYOUR_APP_ID   (same as above, but without write-review parameter)

Таким образом, вы все равно можете получить пользователей на странице магазина приложений, нобольше не напрямую в раздел обзора.Теперь пользователям необходимо прокрутить раздел обзора вручную, чтобы оставить свой отзыв.

Вне всякого сомнения, это «отличное и удивительное преимущество для пользовательского опыта, которое поможет разработчикам привлекать пользователей, чтобы они оставляли высококачественные обзоры, не раздражая их».Молодец Яблоко ...

25 голосов
/ 22 августа 2014

Все вышеперечисленные подходы верны, но в настоящее время использование SKStoreProductViewController приводит к улучшению взаимодействия с пользователем.Чтобы использовать его, вам нужно сделать следующее:

  • реализовать SKStoreProductViewControllerDelegate протокол в вашем делегате приложения
  • добавить необходимый productViewControllerDidFinish метод:

    - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
      [viewController dismissViewControllerAnimated: YES completion: nil];
    }
    
  • Проверьте, доступен ли класс SKStoreProductViewController и либо покажите его, либо переключитесь в магазин приложений:

    extern NSString* cAppleID; // must be defined somewhere...
    
    if ([SKStoreProductViewController class] != nil) {
      SKStoreProductViewController* skpvc = [[SKStoreProductViewController new] autorelease];
      skpvc.delegate = self;
      NSDictionary* dict = [NSDictionary dictionaryWithObject: cAppleID forKey: SKStoreProductParameterITunesItemIdentifier];
      [skpvc loadProductWithParameters: dict completionBlock: nil];
      [[self _viewController] presentViewController: skpvc animated: YES completion: nil];
    }
    else {
      static NSString* const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%@";
      static NSString* const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@";
      NSString* url = [[NSString alloc] initWithFormat: ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f) ? iOS7AppStoreURLFormat : iOSAppStoreURLFormat, cAppleID];
      [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
    }
    
12 голосов
/ 20 сентября 2017

Решение для iOS 11

Короткие URL-адреса App Store неправильно открывают интерфейс «написать обзор» в новом iOS 11 App Store.Например, это не работает:

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

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

https://itunes.apple.com/<b>us/</b>app/<b>twitter/</b>id333903271?mt=8&action=write-review

или

itms-apps://itunes.apple.com/<b>us/</b>app/<b>twitter/</b>id333903271?mt=8&action=write-review

Полный URL-адрес вашего приложения можно получить здесь: https://linkmaker.itunes.apple.com/

Это успешно открывает «написать отзыв»интерфейс в магазине приложений iOS 11.

Редактировать: Как упоминается ниже @Theo, код страны не нужно локализовать, а имя приложения в URL-адресе обновлять не нужноесли имя приложения изменится.

Надеюсь, Apple исправит это в ближайшее время для более короткого URL.См. rdar: // 34498138

12 голосов
/ 20 августа 2015

Версия Swift 2

func jumpToAppStore(appId: String) {
    let url = "itms-apps://itunes.apple.com/app/id\(appId)"
    UIApplication.sharedApplication().openURL(NSURL(string: url)!)
}
11 голосов
/ 11 марта 2016

Все предыдущие ссылки больше не ведут прямо на вкладку "Отзывы",

Эта ссылка будет непосредственно на "Вкладку" Отзывы ":

https://itunes.apple.com/app/viewContentsUserReviews?id=AppID

или

ITMS-приложения:? //itunes.apple.com/app/viewContentsUserReviews ID = AppID

9 голосов
/ 21 ноября 2013

В iOS7 URL, который переключает ваше приложение в App Store для оценки и просмотра, изменился:

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

Где APP_ID необходимо заменить на идентификатор приложения.

Для iOS 6и старше, URL в предыдущих ответах работает нормально.

Источник: Appirater

Наслаждайтесь кодированием .. !!

8 голосов
/ 08 марта 2017

Использование этого URL было идеальным решением для меня. Это берет пользователя непосредственно к Write a Review section. Кредиты @ Джозефу Даффи. ДОЛЖЕН ПОПРОБОВАТЬ

URL = itms-apps://itunes.apple.com/gb/app/idYOUR_APP_ID_HERE?action=write-review&mt=8 Замените YOUR_APP_ID_HERE на AppId

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

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...