Как перейти на страницу обновления нашего приложения
Мы предлагаем пользователям обновить свое приложение, если они работают с устаревшей версией. Когда пользователи нажимают кнопку обновления, я использую openURL с адресом, например itms://itunes.apple.com/us/app/our-app-title/id12345?mt=8
, чтобы загрузить приложение App Store в список для нашего приложения.
При этом методе, однако, в результате экран имеет кнопку с надписью "Открыть", а не "Обновить". Если пользователи сначала откроют приложение App Store, перейдите к списку приложений (или перейдите на вкладку обновления), кнопка будет отмечена как "Обновить".
Могу ли я передать текущую версию в качестве параметра querystring в вызове openURL или есть ли другой способ убедиться, что кнопка Обновить отображается? Я не могу найти текущую документацию о том, как это сделать. (Все, что я нахожу, составляет несколько лет и относится к прекращенному инструменту phobos.)
Ответы
Ответ 1
Я бы рекомендовал вам попробовать класс SKStoreProductViewController. Идентификатор элемента iTunes можно найти в https://itunesconnect.apple.com → Мои приложения → Apple ID.
скор
func openStoreProductWithiTunesItemIdentifier(identifier: String) {
let storeViewController = SKStoreProductViewController()
storeViewController.delegate = self
let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
storeViewController.loadProductWithParameters(parameters) { [weak self] (loaded, error) -> Void in
if loaded {
// Parent class of self is UIViewContorller
self?.presentViewController(storeViewController, animated: true, completion: nil)
}
}
}
func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
viewController.dismissViewControllerAnimated(true, completion: nil)
}
// Usage
openStoreProductWithiTunesItemIdentifier("2321354")
objective-c
- (void)openStoreProductViewControllerWithITunesItemIdentifier:(NSInteger)iTunesItemIdentifier {
SKStoreProductViewController *storeViewController = [[SKStoreProductViewController alloc] init];
storeViewController.delegate = self;
NSNumber *identifier = [NSNumber numberWithInteger:iTunesItemIdentifier];
NSDictionary *parameters = @{ SKStoreProductParameterITunesItemIdentifier:identifier };
UIViewController *viewController = [self topViewController];
[storeViewController loadProductWithParameters:parameters
completionBlock:^(BOOL result, NSError *error) {
if (!result) {
NSLog(@"SKStoreProductViewController: %@", error);
}
}];
[viewController presentViewController:storeViewController animated:YES completion:nil];
[storeViewController release];
}
Ответ 2
Из новостей и анонсов для разработчиков Apple.
Приведите клиентов прямо в ваше приложение в App Store с помощью iTunes Ссылки С помощью ссылок iTunes вы можете предоставить своим клиентам способ доступа к вашим приложениям в App Store непосредственно с вашего сайта или маркетинговых кампаний. Создание ссылки iTunes прост и может быть выполнено направить клиентов в одно приложение, все ваши приложения или на конкретное приложение с указанным названием вашей компании.
Чтобы отправить клиентов в конкретное приложение: http://itunes.com/apps/appname
Чтобы отправить клиентов в список приложений, которые у вас есть в App Store: http://itunes.com/apps/developername
Чтобы отправить клиентов в конкретное приложение с именем вашей компании, включенным в URL: http://itunes.com/apps/developername/appname
Дополнительные примечания:
Вы можете заменить http://
на itms://
или itms-apps://
, чтобы избежать перенаправления.
Информацию об именовании см. в Apple QA1633:
https://developer.apple.com/library/ios/#qa/qa1633/_index.html.
Изменить (по состоянию на январь 2015 года):
ссылки itunes.com/apps должны быть обновлены до appstore.com/apps. См. QA1633 выше, который был обновлен. Новый QA1629 предлагает эти шаги и код для запуска магазина из приложения:
- Запустите iTunes на своем компьютере.
- Найдите элемент, на который хотите установить ссылку.
- Щелкните правой кнопкой мыши или щелкните правой кнопкой мыши на имени элемента в iTunes, затем
выберите "Копировать URL магазина iTunes Store" во всплывающем меню.
- В вашем приложении создайте объект NSURL с скопированной iTunes
URL, затем передайте этот объект в метод openURL: UIApplication для
откройте свой элемент в App Store.
Пример кода:
NSString *iTunesLink = @"itms://itunes.apple.com/us/app/apple-store/id375380948?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
Скопировано из здесь.
Ответ 3
Я хотел бы предоставить ответ для пользователя Xamarin. Следующее приведет к обновлению предложения для предупреждения, а затем приведет пользователя в магазин.
async void PromptForVersionUpgrade()
{
var alertController = UIAlertController.Create(Messages.NewVersionTitle, Messages.NewVersionText, UIAlertControllerStyle.Alert);
alertController.AddAction(UIAlertAction.Create("Cancel", UIAlertActionStyle.Cancel, null));
alertController.AddAction(UIAlertAction.Create(Messages.NewVersionGoToAppStore, UIAlertActionStyle.Default, (obj) =>
{
var storeViewController = new SKStoreProductViewController();
storeViewController.Delegate = this;
storeViewController.LoadProduct(new StoreProductParameters { ITunesItemIdentifier = 999999999 }, (isLoaded, error) =>
{
if (isLoaded)
PresentViewController(storeViewController, true, null);
});
}));
PresentViewController(alertController, true, null);
}
Затем контроллер, которому вы вызываете этот код, должен будет реализовать интерфейс "ISKStoreProductViewControllerDelegate", чтобы заставить кнопку "Отменить" работать. Затем 'this' присваивается свойству "Делегат".
public partial class MyCurrentController : ISKStoreProductViewControllerDelegate {
async void PromptForVersionUpgrade() { ... }
[Export("productViewControllerDidFinish:")]
public void Finished(SKStoreProductViewController controller)
{
controller.DismissViewController(true, null);
}
...
}