0
点赞
收藏
分享

微信扫一扫

IOS6.0 应用内直接下载程序&n…


闲来没事看了篇文章 应用内创建应用商店环境,不跳转AppStore. 先武断的想一句:放屁。然后好奇的进去看看,原来是IOS6.0的新特性,顿感惭愧。研究下


SKStoreProductViewController类是UIViewController的子类, 如果你对view controller比较熟悉的话,那SKStoreProductViewController使用起来也非常简单了。当你希望向用户展示App Store中产品时,你需要:

1.实例化一个SKStoreProductViewController类
2.设置它的delegate
3.把sotre product视图控制器显示给消费者


ller只能以模态的方式显示。SKStoreProductViewControllerDelegate协议定义了一个单独的方法—productViewControllerDidFinish:,当消费者离开App Store时会调用这个方法—一般是通过点击左上角画面中的取消按钮。通过给代理发送productViewControllerDidFinish:消息,操作系统就会把控制权返回到你的程序。当然你不能忘了 只支持IOS6.0及其以上~~


步骤:

1.添加 storeKit.framework

2.头文件里 加上  

#import

@interface ViewController : UIViewController<</span>SKStoreProductViewControllerDelegate>

3.直接在m中实现

- (IBAction)doAction:(UIButton *)sender {
       [self showAppInApp:@"xxxxxx"];//此处xxxxx需要替换为需要的appID
 }
 - (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{
     //低于iOS6没有这个类
     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]; }

举报

相关推荐

0 条评论