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

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

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

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

Ответы [ 26 ]

7 голосов
/ 09 июня 2017

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

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

5 голосов
/ 29 сентября 2017

Существует новый способ сделать это в 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.
4 голосов
/ 30 июня 2010

iOS 4 отказалась от функции «Оценить при удалении».

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

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

4 голосов
/ 11 августа 2014
NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
4 голосов
/ 28 марта 2016

Версия 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)!)
3 голосов
/ 20 января 2017

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

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

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

  1. Добавить StoreFit.framework в ваших настройках проекта (Target, Build Phases -> Link Binary With Libraries
  2. Импортировать StoreKit в класс ViewController
  3. Сделать ваш ViewController соответствующим этому протоколу SKStoreProductViewControllerDelegate
  4. Создать метод, чтобы представить StoreView с помощьютребуемый экран продукта
  5. Отклонить StoreView

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

  1. Добавление StorKit.framework к вашему проекту: Find this in your project settings

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)
    }
}
3 голосов
/ 05 октября 2016

Для> = 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];
    }
}
3 голосов
/ 20 октября 2016

У меня такая же проблема в iOS 10, и я мог бы открыть раздел тарифов iTunes, позвонив по телефону:

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

По сути, он изменил последний URL-адрес на "mt = 7"

Приветствия

2 голосов
/ 14 июля 2014

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

-(void)rateApp {

     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"itms-apps://itunes.apple.com/app/" stringByAppendingString: @"id547101139"]]]; 
}
2 голосов
/ 13 июля 2016

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

[[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} на идентификатор приложения в магазине приложений.

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