ユーザーがiOS6メールアプリでアプリストアのリンクをタップすると、メールは以前のバージョンのようにApp Storeアプリに切り替えるのではなく、アプリストアを表すモーダルビューを開くことに気付きました。
Appleはこの機能へのアクセスを提供していますか、それとも統合プログラム専用ですか?
注: iOS 6をお持ちでテストしたい場合は、アプリストアを開いてアプリをメールで送信してください。
このメソッドをカテゴリとしてUIViewControllerに追加しましたが、必要に応じて再利用できます。アプリストアIDは、アプリストア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]]];
}
}
これは、iOS 6でStoreKitとして導入されたようです。具体的には、ユーザーが直接購入できるように、アプリ内にiTunesコンテンツ(アプリ、音楽、書籍など)を表示できるSKITunesProductViewControllerです。
ここにアフィリエイトリンクを処理するためのプラグインがあります: https ://github.com/adeven/AEProductController
または、Apple Technical Q&A QA1629に従って、最初にアプリ内でアフィリエイトリンクを開くことで(iTunes Storeアプリを直接開く前と同じように)自分でロールすることもできます。
https://developer.apple.com/library/ios/#qa/qa2008/qa1629.html
次に、上記のMaxGabrielのようにSKStoreProductViewControllerを開きます。
[編集]アプリ(音楽アプリ)でこれを完了しましたが、アクティブなAVAudioSessionがあるか、すべての再生を完全に無効にするか(テスト用)、モーダルiTunes Storeの曲のサンプルは再生されますが、音が出ません。この問題がない場合、または解決策が見つかった場合は、お知らせください。https://bugreport.apple.com/に報告する必要があるバグである可能性があります。