Ссылка на приложение для "rate/review this app"

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

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

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

Ответ 1

Для версий ниже 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

Ответ 2

Обновление:

Swift 5.1, Xcode 11

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

let appID = "Your App ID on App Store"
let urlStr = "https://itunes.apple.com/app/id\(appID)" // (Option 1) Open App Page    
let urlStr = "https://itunes.apple.com/app/id\(appID)?action=write-review" // (Option 2) Open App Review Page

guard let url = URL(string: urlStr), UIApplication.shared.canOpenURL(url) else { return }

if #available(iOS 10.0, *) {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
    UIApplication.shared.openURL(url) // openURL(_:) is deprecated from iOS 10.
}

Ответ 3

Все, что написано выше, является правильным. Просто образец, который нужно вставить в приложение и изменить {YOUR APP ID} на фактический идентификатор приложения, взятый из iTunesconnect, чтобы отобразить страницу Review. Обратите внимание, как было сказано выше, что он не работает на Simulator - просто устройство.
- Исправление из-за изменений в 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]];

Ответ 4

EDIT: решение iOS 11

Это решение моего первоначального ответа (см. ниже). При использовании 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 приложение НЕ имеет вкладку "Обзор". Вместо этого отзывы теперь находятся непосредственно под описанием и скриншотами. Конечно, все же можно было бы напрямую связаться с этим разделом (например, с каким-то якорем), но похоже, что это не поддерживается/предназначено 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

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

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

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

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

Без вопроса это "большое и удивительное преимущество для User Experience" и поможет разработчикам привлекать пользователей к тому, чтобы они оставляли высококачественные обзоры, не раздражая их ". Молодцы Apple...

Ответ 5

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

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

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

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

Ответ 6

Решение для 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/us/app/twitter/id333903271?mt=8&action=write-review

или

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

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

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

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

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

Ответ 7

версия Swift 2

func jumpToAppStore(appId: String) {
    let url = "itms-apps://itunes.apple.com/app/id\(appId)"
    UIApplication.sharedApplication().openURL(NSURL(string: url)!)
}

Ответ 8

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

Эта ссылка будет напрямую направлена ​​на вкладку "Отзывы":

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

или

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

?

Ответ 9

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

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

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

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

Источник: Appirater

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

Ответ 10

Использование этого 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.

Ответ 11

Начиная с iOS 10.3 вы можете прикрепить элемент запроса action=write-review к вашим URL https://itunes.apple.com/... и https://appsto.re/.... На iOS 10.3 и выше он автоматически откроет Write a review, а на более низких версиях iOS вернется на страницу App Store.

Обновление iOS 11: Используйте Apple linkmaker: linkmaker.itunes.apple.com и добавить &action=write-review, кажется, самый безопасный путь.

Ответ 12

Существует новый способ сделать это в iOS 11+ (новый магазин приложений). Вы можете открыть диалоговое окно "Написать отзыв" напрямую.

Пример iOS 11:

itms-apps://itunes.apple.com/us/app/id1137397744?action=write-review

или

https://itunes.apple.com/us/app/id1137397744?action=write-review

Примечание:

  • Код страны требуется (/us/). Это может быть любой код страны, не имеет значения.
  • Измените идентификатор приложения (1137397744) на идентификатор вашего приложения (получите его из iTunes URL).
  • Если вы хотите поддерживать более старую версию iOS (до 11), вам нужно, чтобы некоторая условная логика связывалась таким образом, только если версия ОС больше или равна 11.

Ответ 13

iOS 4 удалил функцию "Rate on Delete".

В настоящее время единственный способ оценить приложение - через iTunes.

Изменить: ссылки могут быть сгенерированы для ваших приложений через iTunes Link Maker. На этом сайте есть учебник.

Ответ 14

NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

Ответ 15

версия Swift 2, которая фактически выводит вас на страницу обзора вашего приложения как на iOS 8, так и на iOS 9:

let appId = "YOUR_APP_ID"
let url = "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=\(appId)"

UIApplication.sharedApplication().openURL(NSURL(string: url)!)

Ответ 16

Для >= iOS8: (Упрощенный ответ @EliBud).

#define APP_STORE_ID 1108885113

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

    NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:iOSAppStoreURLFormat, APP_STORE_ID]];

    if ([[UIApplication sharedApplication] canOpenURL:appStoreURL]) {
        [[UIApplication sharedApplication] openURL:appStoreURL];
    }
}

Ответ 18

Ссылка на любое приложение в AppStore через SKStoreProductViewController

Легко подключиться к вашему приложению в магазине приложений через SKStoreProductViewController. Но я немного потрудился, поэтому решил показать здесь весь процесс и необходимый код. Этот метод также гарантирует, что всегда будет использоваться правильный магазин (важно для локализованных приложений).

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

  • Добавить StoreFit.framework в ваши параметры проекта (Целевые, строить фазы → Ссылка на двоичные файлы с библиотеками
  • Импортировать StoreKit в класс ViewController
  • Сделайте ваш ViewController соответствующим протоколу SKStoreProductViewControllerDelegate
  • Создайте способ представить StoreView с помощью экрана продукта, который вы хотите.
  • Отклонить StoreView

Но самое главное: Это - по какой-то причине - не работает в симуляторе - вам нужно создавать и устанавливать на реальном устройстве с подключением к Интернету.

  • Добавление StorKit.framework к вашему проекту: Найти это в настройках вашего проекта

SWIFT 4: Это код в соответствии с описанными выше шагами:

    // ----------------------------------------------------------------------------------------
// 2. Import StoreKit into the ViewController class
// ----------------------------------------------------------------------------------------
import StoreKit

// ...

// within your ViewController

    // ----------------------------------------------------------------------------------------
    // 4. Create the method to present the StoreView with the product screen you want
    // ----------------------------------------------------------------------------------------
    func showStore() {

        // Define parameter for product (here with ID-Number)
        let parameter : Dictionary<String, Any> = [SKStoreProductParameterITunesItemIdentifier : NSNumber(value: 742562928)]

        // Create a SKStoreProduktViewController instance
        let storeViewController : SKStoreProductViewController = SKStoreProductViewController()

        // set Delegate
        storeViewController.delegate = self

        // load product
        storeViewController.loadProduct(withParameters: parameter) { (success, error) in

            if success == true {
                // show storeController
                self.present(storeViewController, animated: true, completion: nil)
            } else {
                print("NO SUCCESS LOADING PRODUCT SCREEN")
                print("Error ? : \(error?.localizedDescription)")
            }
        }
    }

// ...

// ----------------------------------------------------------------------------------------
// 3. Make your ViewController conforming the protocol SKStoreProductViewControllerDelegate
// ----------------------------------------------------------------------------------------
extension ViewController : SKStoreProductViewControllerDelegate {

    // ----------------------------------------------------------------------------------------
    // 5. Dismiss the StoreView
    // ----------------------------------------------------------------------------------------
    func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
        print("RECEIVED a FINISH-Message from SKStoreProduktViewController")
        viewController.dismiss(animated: true, completion: nil)
    }
}

Ответ 19

Вот код, который я использую в своем приложении;

-(void)rateApp {

     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"itms-apps://itunes.apple.com/app/" stringByAppendingString: @"id547101139"]]]; 
}

Ответ 20

Принятый ответ не смог загрузить вкладку "Отзывы". Я нашел ниже метод для загрузки вкладки "Обзор" без вкладки "Сведения".

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id={APP_ID}&pageNumber=0&sortOrdering=2&mt=8"]];

Замените {APP_ID} приложением App App App Store.

Ответ 21

SWIFT 3

fileprivate func openAppStore() {
        let appId = "YOUR_APP_ID"
        let url_string = "itms-apps://itunes.apple.com/app/id\(appId)"
        if let url = URL(string: url_string) {
            UIApplication.shared.openURL(url)
        }
    }

Ответ 22

цитата из Документация разработчика Apple

Кроме того, вы можете продолжать включать постоянную ссылку в настроек или экранов конфигурации вашего приложения, которые глубоко связаны с вашими Страница продукта App Store. Чтобы автоматически открыть страницу, на которой пользователи может написать отзыв в App Store, добавить параметр запроса action = написать отзыв на ваш URL-адрес продукта.

Таким образом, URL-адрес будет следующим:

ITMS-приложения://itunes.apple.com/app/id YOUR_APP_ID действие = рецензия обзор

Ответ 23

let rateUrl = "itms-apps://itunes.apple.com/app/idYOUR_APP_ID?action=write-review"
 if(UIApplication.shared.canOpenURL(rateUrl)) {
            UIApplication.shared.openURL(rateUrl)
        }

Ответ 24

Это прекрасно работает на iOS 9 - 11.

Не тестировался на более ранних версиях.

[NSURL URLWithString:@"https://itunes.apple.com/app/idXXXXXXXXXX?action=write-review"];

Ответ 25

Начиная с iOS 10.3:

import StoreKit

func someFunction() {
 SKStoreReviewController.requestReview()
}

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

Ответ 26

Если ваше приложение было одобрено для бета-версии и оно не запущено, тогда доступна ссылка на рецензирование приложения, но оно не будет доступно, чтобы оставлять отзывы.

  1. Войдите в iTunes Connect
  2. Нажмите My Apps
  3. Нажмите App Icon ваш интерес в
  4. Убедитесь, что вы на странице App Store
  5. Перейдите в раздел App Information (он автоматически приведет вас туда)
  6. Внизу этой страницы есть синяя ссылка с надписью View on App Store. Нажмите на нее, и она откроется на пустой странице. Скопируйте, что в строке URL в верхней части страницы, и что ссылка на ваше приложение отзывов. Он будет активен, как только приложение станет активным.

enter image description here