Подтвердить что ты не робот

Appstore как модальный вид в iOS6

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

Предоставляет ли Apple доступ к этой возможности или является эксклюзивным для своих интегрированных программ?


Примечание. Если у вас есть iOS 6 и вы хотите протестировать его, просто откройте приложение appstore и email.

4b9b3361

Ответ 1

Я добавил этот метод как категорию в UIViewController, но вы можете перенастроить его для своих нужд. Идентификатор магазина приложения - это большое количество в URL-адресе магазина приложений. Убедитесь, что вы импортируете структуру и заголовочный файл StoreKit!

@import StoreKit;

- (void)presentAppStoreForID:(NSNumber *)appStoreID withDelegate:(id<SKStoreProductViewControllerDelegate>)delegate
{
    if(NSClassFromString(@"SKStoreProductViewController")) { // Checks for iOS 6 feature.

        SKStoreProductViewController *storeController = [[SKStoreProductViewController alloc] init];
        storeController.delegate = delegate; // productViewControllerDidFinish

        // Example App Store ID (e.g. for Words With Friends)
        // @322852954

        [storeController loadProductWithParameters:@{ SKStoreProductParameterITunesItemIdentifier: appStoreID }
                                   completionBlock:^(BOOL result, NSError *error) {
            if (result) {
                [self presentViewController:storeController animated:YES completion:nil];
            } else {
                [[[UIAlertView alloc] initWithTitle:@"Uh oh!" message:@"There was a problem opening the app store" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil] show];
            }
        }];

    } else { // Before iOS 6, we can only open the App Store URL
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/app/id%@",appStoreID]]];
    }
}

Ответ 2

Похоже, что это введено в IOS 6 как StoreKit, в частности SKITunesProductViewController, который позволяет вам отображать содержимое iTunes (приложения, музыку, книги и т.д.) внутри вашего приложения для покупки напрямую.

Ответ 3

Существует плагин для обработки партнерских ссылок: https://github.com/adeven/AEProductController

Или вы можете свернуть самостоятельно, сначала открыв партнерскую ссылку в приложении (так же, как и до открытия приложения iTunes Store напрямую), следуя Apple Technical Q & A QA1629:

https://developer.apple.com/library/ios/#qa/qa2008/qa1629.html

а затем открыв SKStoreProductViewController, как указано выше MaxGabriel.

[Edit] Я закончил это в своем приложении (музыкальном приложении), но имею ли я активную AVAudioSession или полностью отключил все воспроизведение (для тестирования), образцы песен в модальном магазине iTunes Store, но не имеют звука. Если у вас нет этой проблемы или вы нашли разрешение, сообщите мне. Это может быть ошибка, о которой следует сообщить https://bugreport.apple.com/.