StoreKit--SKStoreProductViewController

从iOS6以后苹果提供了在应用内部打开App Store中某一个应用下载页面的方式,提供了一个SKStoreProductViewController的类对该功能进行支持。

首先,需要导入#import <StoreKit/StoreKit.h>。

其次,需要遵守<SKStoreProductViewControllerDelegate>这个协议。

第三,在该类中插入如下代码即可。

  1. - (void)showStoreProductInApp:(NSString *)appID{  
  2.       
  3.     Class isAllow = NSClassFromString(@"SKStoreProductViewController");  
  4.       
  5.     if (isAllow != nil) {  
  6.           
  7.         SKStoreProductViewController *sKStoreProductViewController = [[SKStoreProductViewController alloc] init];  
  8.         [sKStoreProductViewController.view setFrame:CGRectMake(0200320200)];  
  9.         [sKStoreProductViewController setDelegate:self];  
  10.         [sKStoreProductViewController loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier: appID}  
  11.                                                 completionBlock:^(BOOL result, NSError *error) {  
  12.                                                     if (result) {  
  13.                                                         [self presentViewController:sKStoreProductViewController  
  14.                                                                            animated:YES  
  15.                                                                          completion:nil];  
  16.                                                         [self removeNotice];  
  17.   
  18.                                                     }else{  
  19.                                                         NSLog(@"error:%@",error);  
  20.                                                     }  
  21.                                                 }];  
  22.     }else{  
  23.         //低于iOS6的系统版本没有这个类,不支持这个功能  
  24.         NSString *string = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/xxxxxxx/app/id%@?mt=8",appID];  
  25.         [[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]];  
  26.     }  
  27. }  


  1. [sKStoreProductViewController loadProductWithParameters:(NSDictionary *) completionBlock:^(BOOL result, NSError *error) {}];  
这个方法的第一个参数是NSDictionary类型,其中的Key为,
  1. NSString * const  SKStoreProductParameterITunesItemIdentifier ;  
  2. NSString * const  SKStoreProductParameterAffiliateToken ;  
  3. NSString * const  SKStoreProductParameterCampaignToken;  
三种类型。

SKStoreProductParameterITunesItemIdentifier是希望展示App的AppID,该Key所关联的值是一个NSNumber类型。支持iOS6以后的系统版本。

SKStoreProductParameterAffiliateToken是附属令牌,该Key所关联的值是NSString类型。例如在iBook中app的ID,是iOS8中新添加的,支持iOS8以后的系统版本。

SKStoreProductParameterCampaignToken是混合令牌,该Key所关联的值是一个40byte的NSString类型,使用这个令牌,你能看到点击和销售的数据报告。支持iOS8以后的系统版本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值