提示:需要iOS6.0以上才可以
SKStoreProductViewController类是UIViewController的子类, 如果你对view controller比较熟悉的话,那SKStoreProductViewController使用起来也非常简单了。当你希望向用户展示App Store中产品时,你需要:
1.实例化一个SKStoreProductViewController类
2.设置它的delegate
3.把sotre product视图控制器显示给消费者
剩下的就交给操作系统来处理了。需要记住一点的是SKStoreProductViewController只能以模态的方式显示。SKStoreProductViewControllerDelegate协议定义了一个单独的方法—productViewControllerDidFinish:,当消费者离开App Store时会调用这个方法—一般是通过点击左上角画面中的取消按钮。通过给代理发送productViewControllerDidFinish:消息,操作系统就会把控制权返回到你的程序。当然你不能忘了 只支持IOS6.0及其以上~~
步骤:
1.添加 storeKit.framework
2.头文件里 加上
- #import <StoreKit/StoreKit.h>
-
- @interface ViewController : UIViewController<SKStoreProductViewControllerDelegate>
3.直接在m中实现
- - (IBAction)doAction:(UIButton *)sender {
- [self showAppInApp:@"xxxxxx"];
- }
- - (void)showAppInApp:(NSString *)_appId {
- Class isAllow = NSClassFromString(@"SKStoreProductViewController");
- if (isAllow != nil) {
- SKStoreProductViewController *sKStoreProductViewController = [[SKStoreProductViewController alloc] init];
- sKStoreProductViewController.delegate = self;
- [sKStoreProductViewController loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier: _appId}
- completionBlock:^(BOOL result, NSError *error) {
- if (result) {
- [self presentViewController:_SKSVC
- animated:YES
- completion:nil];
- }
- else{
- NSLog(@"%@",error);
- }
- }];
- }
- else{
-
- NSString *string = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/us/app/id%@?mt=8",_appId];
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]];
- }
- }
-
-
- #pragma mark - SKStoreProductViewControllerDelegate
-
-
- - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
-
-
- [viewController dismissViewControllerAnimated:YES
- completion:nil];
-
-
- }