2012-09-29 116 views
2

環顧四周後,我無法直接回答以下情況:我可以從iPhone應用程序鏈接到iBook商店中的書,而無需集成應用內購買API?從iPhone應用程序鏈接到iBook商店中的書

據我所知,iBooks確實會向您收取費用,因此我的邏輯認爲它應該是可能的,否則您將被收取兩次費用。

非常感謝。

+0

你只是想顯示一個視圖,以便用戶可以從你的應用程序內購買從iBooks書? – brynbodayle

+0

我想在我的應用程序中有一個按鈕,名爲「在iBooks上購買我們的書」,它將重定向到我們的iBook應用程序。 – moshikafya

回答

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字符串的鏈接,它會離開您的應用程序並進入顯示該p的iBooks應用程序產品爲準。

如果你想同時針對iOS的6.0和更低的,你可以檢查他們是否使用有新的SKStoreProductViewController以下條件

if([SKStoreProductViewController class]) { 
    //show the SKStoreProductViewController 
} 
else { 
    //use UIApplication's openURL: 
} 

爲了得到蘋果的產品ID爲的產品,你可以查詢的網址到產品,例如:

http://itunes.apple.com/us/book/the-casual-vacancy/id518781282?mt=11

產品ID是518781282。它位於URL中的id部分之後。請勿包含?或其後的任何內容。

+0

我需要設置IAP API嗎?或者我是否很喜歡那樣?非常感謝!!! – moshikafya

+0

這不是一個「應用內購買」,所以上面的代碼是你所需要的。 – brynbodayle

+0

最後一個問題...什麼是ProductID?我從哪裏得到它? – moshikafya

相關問題