iOS应用内展示应用并下载(StoreKit Demo)
来源:互联网 发布:vb用什么语言 编辑:程序博客网 时间:2024/05/07 11:25
(转载地址 : http://blog.csdn.net/jaywon/article/details/9082893)
最近就是被问到,某某浏览器可以直接在应用内展示应用并下载,还有下载进度是咋实现的,知道是iOS6的SotreKit搞的,但是还总被问有没有例子。个人觉得的应该是个很简单的东东啊?顺手写了一个:
步骤很简单:
1.添加StoreKit.framework
2.引用头文件并声明协议
#import <StoreKit/StoreKit.h>
@interface ViewController ()<SKStoreProductViewControllerDelegate>
@end
@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];
}
[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/
- iOS应用内展示应用并下载(StoreKit Demo)
- iOS应用内展示应用并下载(StoreKit Demo)
- iOS 在应用内展示App Store 【StoreKit,SKStoreProductViewController】
- iOS 6 SDK: 在应用内展示App Store (storekit)
- iOS 应用内下载
- 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 6 SDK: 在应用内展示App Store
- iOS 6.0 应用内显示APPStore 下载
- ios应用iap接入及storekit的使用
- Unity3D-应用内打开AppStore某个应用详情方法(iOS应用内下载、应用内评星)
- 应用内展示AppStore SKStoreProductViewController
- 应用内展示AppStore SKStoreProductViewController
- iOS 6 SDK: 在应用内展示App Store --- 用户可以 不必 关闭应用直接在应用内评价
- 应用内下载
- HDU 1011 (ZOJ 2111)Starship Troopers 树形背包
- seqlock分析
- Ubuntu 12.04中文输入法的安装
- uva 1103
- Java的多线程研究(三)
- iOS应用内展示应用并下载(StoreKit Demo)
- 提取HTML中的文本信息
- NS-2安装——Linux平台
- 图像特征提取5:SIFT特征
- Android之音乐播放器——简单版
- jquery实例
- jquery跨域提交php
- 字符串两次翻转
- s3c2440的IO静态映射的分析