ios 跳转AppStore的两种方法,应用内和直接跳转

jopen 9年前

#import "ViewController.h"  #import <StoreKit/StoreKit.h>  @interface ViewController ()<SKStoreProductViewControllerDelegate>     @end     @implementation ViewController     - (void)viewDidLoad {      [super viewDidLoad];      //第一种方法  直接跳转      UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 50)];      btn.backgroundColor = [UIColor redColor];      [btn setTitle:@"直接跳转" forState:UIControlStateNormal];      btn.tag = 1;      [btn addTarget:self action:@selector(btn:) forControlEvents:UIControlEventTouchUpInside];      //第二中方法  应用内跳转      UIButton *btnT = [[UIButton alloc]initWithFrame:CGRectMake(100, 300, 100, 50)];      btnT.backgroundColor = [UIColor purpleColor];      btnT.tag = 2;      [btnT setTitle:@"应用内跳转" forState:UIControlStateNormal];      [btnT addTarget:self action:@selector(btn:) forControlEvents:UIControlEventTouchUpInside];      [self.view addSubview:btn];      [self.view addSubview:btnT];  }  - (void)btn:(UIButton *)btn{      if (btn.tag == 1) {          //第一种方法  直接跳转          [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/app/id1018221712"]];      }else{          //第二中方法  应用内跳转          //1:导入StoreKit.framework,控制器里面添加框架#import <StoreKit/StoreKit.h>          //2:实现代理SKStoreProductViewControllerDelegate          SKStoreProductViewController *storeProductViewContorller = [[SKStoreProductViewController alloc] init];          storeProductViewContorller.delegate = self;  //        ViewController *viewc = [[ViewController alloc]init];  //        __weak typeof(viewc) weakViewController = viewc;                     //加载一个新的视图展示          [storeProductViewContorller loadProductWithParameters:           //appId           @{SKStoreProductParameterITunesItemIdentifier : @"1018221712"} completionBlock:^(BOOL result, NSError *error) {               //回调               if(error){                   NSLog(@"错误%@",error);               }else{                   //AS应用界面                   [self presentViewController:storeProductViewContorller animated:YES completion:nil];               }           }];      }         }  #pragma mark - 评分取消按钮监听  //取消按钮监听  - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController{      [self dismissViewControllerAnimated:YES completion:nil];  }


来自: http://my.oschina.net/u/2365185/blog/597103