环顾四周后,我无法直接回答以下案例:我可以在不集成应用内购买 API 的情况下从我的 iphone 应用链接到 iBook 商店中的一本书吗?
据我所知,iBooks 确实会向您收取放置图书的费用,所以我的逻辑是这应该是可能的,否则您将被收取两次费用。
非常感谢。
环顾四周后,我无法直接回答以下案例:我可以在不集成应用内购买 API 的情况下从我的 iphone 应用链接到 iBook 商店中的一本书吗?
据我所知,iBooks 确实会向您收取放置图书的费用,所以我的逻辑是这应该是可能的,否则您将被收取两次费用。
非常感谢。
如果您的应用程序面向 iOS 6.0,您可以使用新SKStoreProductViewController
功能允许用户直接从您的应用程序购买 iTunes、App Store 和 iBooks 内容,而无需离开它。
以下是如何从UIViewController
. 您必须将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,您只需检查产品的 URL,例如:
http://itunes.apple.com/us/book/the-casual-vacancy/id518781282?mt=11
产品编号为518781282
。它id
位于 URL 中的部分之后。不要在?
其后包含 或任何内容。