iOS 6 SDK: 在应用内展示App Store (storekit)
2014-05-28 20:44
375 查看
在ios6之前好多应用想在app内直接可以评论或者跳转链接下载其他的app,但是必须跳出到自己的aoo了,然后就无法回到自己的app。幸运的是Apple在ios增加了这个sotrekit这个强大的framework,可以让用户在不离开当前应用的前提下展示App Store中的其他产品。具体我们还是看下怎么实现吧:
1、创建一个简单的ios storekitdemo 工程:
2、添加storekit.framework
3、在ViewController.h文件中引入
同时添加SKStoreProductViewControllerDelegate代理
4、在ViewController.m文件中添加代码
这个方法的重点有二个
1、我们写对自己想要跳转的app number就好了
2、completion
block。
当App store请求结束时会调用这个completion block。在完成的block中,我们要核实是否有错误遗漏,并把store product 视图控制器展示给用户。请记住,即使用户没有离开你的程序,操作系统仍然会在内部进行与App store的连接。由于在请求App Store过程中,会需要稍微长的一段时间,也就是说,最好在请求还没有返回响应时给用户显示一个风火轮。一旦请求完成(成功或者不成功),已经完成的
block将会允许我们解除activity indicator。
那么我们就要一个UIActivityIndicatorView来给用户提示进度。
最后我们在执行下SKStoreProductViewControllerDelegate方法
然后Build and Run
虽然苹果表示SKStoreProductViewController类可以向用户展示其他app,但这是一种理想的在用户不离开当前app的情况下,让用户去App Store评分的方法。
最后在完善下我们的跳用方法,做一个ios系统的判断
1、创建一个简单的ios storekitdemo 工程:
2、添加storekit.framework
3、在ViewController.h文件中引入
#import <StoreKit/StoreKit.h>
同时添加SKStoreProductViewControllerDelegate代理
@interface ViewController : UIViewController<SKStoreProductViewControllerDelegate>
4、在ViewController.m文件中添加代码
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setTitle:@"Go to App Store" forState:UIControlStateNormal]; [button setFrame:CGRectMake(0.0, 0.0, 200.0, 44.0)]; [button setCenter:self.view.center]; [self.view addSubview:button]; [button addTarget:self action:@selector(openAppStore:) forControlEvents:UIControlEventTouchUpInside]; }6添加button事件
-(void) openAppStore:(id)sender { [self showIndicator]; SKStoreProductViewController *_SKSVC = [[SKStoreProductViewController alloc] init]; _SKSVC.delegate = self; [_SKSVC loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier:@"743484337"} completionBlock:^(BOOL result, NSError *error) { if (result) { [self presentViewController:_SKSVC animated:YES completion:nil]; } else{ NSLog(@"%@",error); } [self hideIndicator]; }]; }
这个方法的重点有二个
1、我们写对自己想要跳转的app number就好了
2、completion
block。
当App store请求结束时会调用这个completion block。在完成的block中,我们要核实是否有错误遗漏,并把store product 视图控制器展示给用户。请记住,即使用户没有离开你的程序,操作系统仍然会在内部进行与App store的连接。由于在请求App Store过程中,会需要稍微长的一段时间,也就是说,最好在请求还没有返回响应时给用户显示一个风火轮。一旦请求完成(成功或者不成功),已经完成的
block将会允许我们解除activity indicator。
那么我们就要一个UIActivityIndicatorView来给用户提示进度。
- (void)showIndicator //显示加载菊花 { indicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; indicatorView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; [self.view addSubview:indicatorView]; [indicatorView sizeToFit]; [indicatorView startAnimating]; indicatorView.center = self.view.center; } - (void)hideIndicator //隐藏加载菊花 { [indicatorView stopAnimating]; }
最后我们在执行下SKStoreProductViewControllerDelegate方法
#pragma mark- SKStoreProductViewControllerDelegate -(void) productViewControllerDidFinish:(SKStoreProductViewController *)viewController { [self dismissViewControllerAnimated:YES completion:nil]; }
然后Build and Run
虽然苹果表示SKStoreProductViewController类可以向用户展示其他app,但这是一种理想的在用户不离开当前app的情况下,让用户去App Store评分的方法。
最后在完善下我们的跳用方法,做一个ios系统的判断
-(void) openAppStore:(id)sender { Class storeVC = NSClassFromString(@"SKStoreProductViewController"); if (storeVC != nil) { [self showIndicator]; SKStoreProductViewController *_SKSVC = [[SKStoreProductViewController alloc] init]; _SKSVC.delegate = self; [_SKSVC loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier:@"743484337"} completionBlock:^(BOOL result, NSError *error) { if (result) { [self presentViewController:_SKSVC animated:YES completion:nil]; } else{ NSLog(@"%@",error); } [self hideIndicator]; }]; } else{ //低于iOS6没有这个类 NSString *_idStr = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/us/app/id%@?mt=8",@"743484337"]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:_idStr]]; } }
相关文章推荐
- iOS 6 SDK: 在应用内展示App Store 【StoreKit,SKStoreProductViewController】
- iOS 6 SDK: 在应用内展示App Store
- iOS 6 SDK: 在应用内展示App Store
- iOS 6 SDK: 在应用内展示App Store
- iOS 6 SDK: 在应用内展示App Store
- iOS 6 SDK: 在应用内展示App Store
- iOS 在应用内展示App Store 【StoreKit,SKStoreProductViewController】
- iOS 6 SDK: 在应用内展示App Store
- iOS 6 SDK: 在应用内展示App Store
- iOS 6 SDK: 在应用内展示App Store --- 用户可以 不必 关闭应用直接在应用内评价
- [ios2]OS 6 SDK: 在应用内展示App Store【转】
- [ios2]OS 6 SDK: 在应用内展示App Store【转】
- iOS应用内展示应用并下载(StoreKit Demo)
- iOS SDK6.0创建基于iOS5.0的应用遇到的问题
- Tiny Wings 为什么能迅速成为 iOS App Store 付费应用第一名?
- iOS应用内打开App Store应用详情界面
- 【IOS】在SDK中打开其他接入应用的解决方案
- 【IOS】在SDK中打开其他接入应用的解决方案
- 在 iOS 平台开发应用并发布到 App Store 上销售,要走哪些流程
- 【IOS】在SDK中打开其他接入应用的解决方案