最近就是被問到,某某瀏覽器可以直接在應用內展示應用並下載,還有下載進度是咋實現的,知道是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/