22

我注意到当用户在 iOS6 邮件应用程序中点击应用程序商店链接时,邮件会打开一个表示应用程序商店的模式视图,而不是像以前的版本那样切换到应用程序商店应用程序。

Apple 是否提供对此功能的访问权限,或者它是其集成程序独有的?


注意:如果您有 iOS 6 并想对其进行测试,只需打开应用商店并通过电子邮件将应用发送给自己。

4

3 回答 3

43

我将此方法作为一个类别添加到 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]]];
    }
}
于 2012-10-01T23:47:34.570 回答
3

看起来这是在 IOS 6 中作为 StoreKit 引入的,特别是SKITunesProductViewController,它允许您在应用程序中呈现 iTunes 内容(应用程序、音乐、书籍等)供用户直接购买。

于 2012-10-01T21:34:58.833 回答
-1

这里有一个处理附属链接的插件: https ://github.com/aven/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/的错误。

于 2013-02-06T19:15:58.177 回答