アプリケーションにアプリ内購入機能を追加しようとしています。自分のサーバーでホストしているコンテンツをダウンロードしたいと考えています。RMStoreはこれを行うための API を提供していますが、その方法がわかりませんでした。
ドキュメントには次のように記載されています。
RMStore は、オプションのデリゲートを介して自己ホスト型コンテンツのダウンロードを委任します
contentDownloader
。RMStoreContentDownloader
プロトコルを使用して独自の実装を提供できます。
- (void)downloadContentForTransaction:(SKPaymentTransaction*)transaction
success:(void (^)())successBlock
progress:(void (^)(float progress))progressBlock
failure:(void (^)(NSError *error))failureBlock;
successBlock
ダウンロードが成功した場合、失敗した場合、failureBlock
およびprogressBlock
ダウンロードの進行状況を通知するために呼び出します。RMStore は、コンテンツ ダウンローダー デリゲートがコンテンツのダウンロードに成功または失敗した後にのみ、トランザクションが終了または失敗したと見なします。
そして、これがプロトコルです(RMStore.hから):
@protocol RMStoreContentDownloader <NSObject>
/**
Downloads the self-hosted content associated to the given transaction and calls the given success or failure block accordingly. Can also call the given progress block to notify progress.
@param transaction The transaction whose associated content will be downloaded.
@param successBlock Called if the download was successful. Must be called in the main queue.
@param progressBlock Called to notify progress. Provides a number between 0.0 and 1.0, inclusive, where 0.0 means no data has been downloaded and 1.0 means all the data has been downloaded. Must be called in the main queue.
@param failureBlock Called if the download failed. Must be called in the main queue.
@discussion Hosted content from Apple’s server (@c SKDownload) is handled automatically by RMStore.
*/
- (void)downloadContentForTransaction:(SKPaymentTransaction*)transaction
success:(void (^)())successBlock
progress:(void (^)(float progress))progressBlock
failure:(void (^)(NSError *error))failureBlock;
@end
簡単に言えば、特定のトランザクションに関連付けられた自己ホスト型コンテンツをダウンロードします。セルフホステッドをトランザクションに関連付けるにはどうすればよいですか?