2

周りを見回した後、次のケースに対する率直な答えを得ることができませんでした: アプリ内購入 API を統合せずに、iPhone アプリから iBook ストアの本にリンクできますか?

私が知る限り、iBooks は本を置くのに料金を請求するので、そうしないと 2 回請求されることになるので、私の論理ではそれが可能であると言っています。

どうもありがとう。

4

1 に答える 1

8

アプリが 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

商品IDは518781282. idURL の の後に来ます。?の後にまたは何も含めないでください。

于 2012-09-30T00:45:53.523 に答える