4

アプリケーションにアプリ内購入機能を追加しようとしています。自分のサーバーでホストしているコンテンツをダウンロードしたいと考えています。RMStoreはこれを行うための API を提供していますが、その方法がわかりませんでした。

ドキュメントには次のように記載されています。

RMStore は、オプションのデリゲートを介して自己ホスト型コンテンツのダウンロードを委任しますcontentDownloaderRMStoreContentDownloaderプロトコルを使用して独自の実装を提供できます。

- (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

簡単に言えば、特定のトランザクションに関連付けられた自己ホスト型コンテンツをダウンロードします。セルフホステッドをトランザクションに関連付けるにはどうすればよいですか?

4

2 に答える 2

-1

アプリ内購入で提供しようとしているコンテンツは、トランザクションごとに固有ですか? トランザクションごとに一意である場合は、トランザクション ID をサーバーに渡し、このトランザクション ID に対してのみ生成されたコンテンツをダウンロードする必要があります。それ以外の場合は、トランザクションごとに、トランザクション ID を渡さずにコンテンツをダウンロードします。どちらの場合も、ダウンロード プロセスの最後に successBlock または failureBlock を呼び出す必要があります。オプションで、進行状況を更新するたびに、progressBlock を呼び出すことができます。

于 2015-04-06T13:31:27.470 に答える