您的位置:首页 > 移动开发 > IOS开发

iOS应用内展示应用并下载(StoreKit Demo)

2013-10-22 22:41 531 查看
(转载地址 : http://blog.csdn.net/jaywon/article/details/9082893)
最近就是被问到,某某浏览器可以直接在应用内展示应用并下载,还有下载进度是咋实现的,知道是iOS6的SotreKit搞的,但是还总被问有没有例子。个人觉得的应该是个很简单的东东啊?顺手写了一个:





步骤很简单:

1.添加StoreKit.framework

2.引用头文件并声明协议

#import <StoreKit/StoreKit.h>

@interface ViewController ()<SKStoreProductViewControllerDelegate>

@end

3.简单的几行实现代码

- (IBAction)doLoadAnApp:(UIButton *)sender {

[self openAppWithId:@"443795458"];

}

- (void)openAppWithId:(NSString *)_appId {

Class storeVC = NSClassFromString(@"SKStoreProductViewController");

if (storeVC != nil) {

SKStoreProductViewController *_SKSVC = [[SKStoreProductViewController alloc] init];

_SKSVC.delegate = self;

[_SKSVC loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier: _appId}

completionBlock:^(BOOL result, NSError *error) {

if (result) {

[self presentViewController:_SKSVC

animated:YES

completion:nil];

}

else{

NSLog(@"%@",error);

}

}];

}

else{

//低于iOS6没有这个类

NSString *_idStr = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/us/app/id%@?mt=8",_appId];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:_idStr]];

}

}

#pragma mark - SKStoreProductViewControllerDelegate

- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {

[viewController dismissViewControllerAnimated:YES

completion:nil];

}

that’s all

顺道说下,如果你想测试下载过程的话,跟测试iAP一样,需要建立一个测试帐号,然后用那个帐号下载,不然的话会安装不成功

再有就是,明显那个“低于iOS6”就是指iOS5喽,因为这类只提供了block实现,就只能用在4.x以上了,而现在苹果要求4.x只支持4.3,所以是不是很多人都放弃4.3只支持5.x以上了?

工程下载:StoreKitTest

转载: http://blog.cnrainbird.com/index.php/2013/02/02/ios_ying_yong_nei_zhan_shi_ying_yong_bing_xia_zai_storekit_demo/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: