Ссылка на приложение для "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];
}
}
Ответ 17
У меня такая же проблема в 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 var на "mt = 7"
Приветствия
Ответ 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
Если ваше приложение было одобрено для бета-версии и оно не запущено, тогда доступна ссылка на рецензирование приложения, но оно не будет доступно, чтобы оставлять отзывы.
- Войдите в
iTunes Connect
- Нажмите
My Apps
- Нажмите
App Icon
ваш интерес в
- Убедитесь, что вы на странице
App Store
- Перейдите в раздел
App Information
(он автоматически приведет вас туда)
- Внизу этой страницы есть синяя ссылка с надписью
View on App Store
. Нажмите на нее, и она откроется на пустой странице. Скопируйте, что в строке URL в верхней части страницы, и что ссылка на ваше приложение отзывов. Он будет активен, как только приложение станет активным.
![enter image description here]()