用iPhone浏覽UC浏覽器的“應用商店”時,發現可以直接在應用內打開App Store中的應用詳情和下載頁面。效果如下:
- (void)openAppWithIdentifier:(NSString *)appId { SKStoreProductViewController *storeProductVC = [[SKStoreProductViewController alloc] init]; storeProductVC.delegate = self; NSDictionary *dict = [NSDictionary dictionaryWithObject:appId forKey:SKStoreProductParameterITunesItemIdentifier]; [storeProductVC loadProductWithParameters:dict completionBlock:^(BOOL result, NSError *error) { if (result) { [self presentViewController:storeProductVC animated:YES completion:nil]; } }]; } 另外,需要實現SKStoreProductViewControllerDelegate如下代理方法: #pragma mark - SKStoreProductViewControllerDelegate - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController { [viewController dismissViewControllerAnimated:YES completion:^{ [viewController release]; }]; } 可以這樣調用: [self openAppWithIdentifier:@"383037733"]; 這段代碼即實現了上面圖示的效果。 注:項目需要添加StoreKit框架,僅在iOS 6.0以上的設備中支持上述實現。 Framework /System/Library/Frameworks/StoreKit.framework Availability Available in iOS 6.0 and later. 如果需要兼容6.0以下的設備,可以使用下面的代碼(這種方式會跳出當前應用): - (void)outerOpenAppWithIdentifier:(NSString *)appId { NSString *urlStr = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/us/app/id%@?mt=8", appId]; NSURL *url = [NSURL URLWithString:urlStr]; [[UIApplication sharedApplication] openURL:url]; }