环顾四周之后我无法直接回答以下案例:我是否可以从iphone应用程序链接到iBook商店中的书籍,而无需集成应用内购买API?
据我所知,iBooks会向你收取放置书籍的费用,所以我的逻辑说它应该是可能的,否则你会收取两次费用。
非常感谢。
答案 0 :(得分:8)
如果您的应用定位到iOS 6.0,则可以使用新的SKStoreProductViewController
来允许用户直接从您的应用购买iTunes,App Store和iBooks内容,而无需离开。
以下是如何从UIViewController
展示它。您必须add StoreKit.framework到您的应用程序。
ViewController.h
#import <StoreKit/StoreKit.h>
@interface UIViewController : UIViewController <SKStoreProductViewControllerDelegate>
@end
ViewController.m
-(void)showProductPageForProductID:(NSInteger)productID {
SKStoreProductViewController *sv = [[SKStoreProductViewController alloc] init];
sv.delegate = self;
NSDictionary *product = @{ SKStoreProductParameterITunesItemIdentifier: @(productID)};
[sv loadProductWithParameters:product completionBlock:^(BOOL result, NSError *error) {
if(result)
[self presentModalViewController:sv animated:YES];
else {
//product not found, handle appropriately
}
}];
}
-(void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
[viewController dismissModalViewControllerAnimated:YES];
}
如果你的目标设备低于iOS 6.0,你可以使用它:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunes.apple.com/us/book/the-casual-vacancy/id518781282?mt=11"]];
只需用您的链接替换该URL字符串,它就会离开您的应用并进入显示该产品的iBooks应用。
如果你想同时定位iOS 6.0及更低版本,你可以使用以下条件
检查他们是否有新的SKStoreProductViewController
if([SKStoreProductViewController class]) {
//show the SKStoreProductViewController
}
else {
//use UIApplication's openURL:
}
要获取产品的Apple产品ID,您只需检查产品的网址,例如:
http://itunes.apple.com/us/book/the-casual-vacancy/id518781282?mt=11
产品ID为518781282
。它位于URL中的id
部分之后。不要包含?
或其后的任何内容。