2

私はこのアプリ内購入チュートリアルを読んでいます:

http://www.raywenderlich.com/21081/introduction-to-in-app-purchases-in-ios-6-tutorial

購入するには、次のことを行う必要があります。

SKProduct* product = ...;
SKPayment* payment = [SKPayment paymentWithProduct:product];
[[SKPaymentQueue defaultQueue] addPayment:payment];

メソッドSKProductに渡すにはのインスタンスが必要なようです。addPayment:これは、ユーザーがアプリを開くたびに、アプリが提供する製品のリストをアプリストアから取得する必要があることを意味しますか?

私の場合、ハードコードされた製品IDのリストがあります。SKProduct人々がインスタンスのリストを一度フェッチしてから、それらをディスクにキャッシュするのではないかと思います。その後、アプリに商品を追加するまで、再フェッチは必要ありません。ただし、ローカライズされた価格のような動的属性はキャッシュを妨げると思います。

では、アプリを実行するたびに商品リストを再取得するのが一般的ですか?

ありがとう

4

2 に答える 2

2

いいえ、アプリケーションの起動時に毎回製品リクエストを行う必要はありません。アプリケーションの要件によって異なります。アプリケーションの最初の画面が、販売するアイテムを表示するストア画面のようなものであるとします。その場合は、アプリケーションが起動するたびに、製品に対応する最新の情報を表示できるように、Itunesストアに製品リクエストを送信する必要があります。

アプリケーションで、ストアボタンをクリックすると製品リストが表示されるとします(クリックするとストアコンテンツをロードします)。その場合は、その時点で商品リクエストを行い、これらの商品を画面に表示する必要があります。そして、それらのいずれか(製品)をクリックすると、それをに渡すことができますSKProductSKPaymentQueueその場合、アプリケーションが起動するたびにItunesストアに製品リクエストを行う必要はありません。

だからここで私はあなたが最初にあなたのアプリケーション要件について考える必要があると言います。お役に立てば幸いです。

于 2013-01-01T19:17:16.683 に答える
1

私自身のアプリでは、アプリが実行されるたびではなく、ユーザーがアプリ内の「ストア」画面に移動するたびにSKProductsをフェッチします。ユーザーが現時点で何も購入するつもりがない場合は、製品を取得する必要はありません。ユーザーがアプリで実行できるアプリ内購入の詳細を確認することを選択するまで待ちます。

于 2013-01-01T17:01:12.140 に答える