2011-10-04 5 views
3

私はアプリ内でのアプリ内購入を統合するためのオンラインチュートリアルの例に従っています。余分なコンテンツを購入したり、ロックを解除したりすることはすべてうまくいっています。ただし、購入を確認するための通知が表示されるまでには4〜9秒かかります。これは非常に一貫したユーザーエクスペリエンスのためのものではなく、アプリケーションを遅く見えるようにします。ストアキットのアプリ内購入の通知が遅い

他の誰かがこれと同じ問題を抱えていたのですか?

時間と矛盾の長い長さは、おそらく以下から発信される

答えて

2

ユーザーが購入ネットワークメッセージは、リンゴのサーバーに送信されるようになります - the length of time this will take will be inconsistent depending on the distance from the server, the amount of nodes the message passes through and the quality of the connections you are using.

メッセージは、それが意志りんごサーバーに到達すると処理する必要があり、応答が生成されました - この時間の長さは、現在サーバーに影響を与える負荷に応じて矛盾します。

確認がネットワーク経由で返送されます - 送信メッセージと同じ規則が適用されます。

確認を受信したデバイスは、アラートをユーザに表示します。

メッセージが送信されるネットワークに変更を加えたり、リンゴサーバーの応答時間を改善できない限り、時間や矛盾を減らすことはできません。

「解決策」とは、何が起こっているかを説明する有用なメッセージをユーザに表示することです。これを行うには、次のユーティリティDSActivityViewをお勧めします。その使いやすいと簡単に接続し、私には同じような問題に直面したときに便利でした。

+0

アクティビティインジケータを使用すると、問題の大きな解決策と思われます。 StoreKitが戻って、進捗インジケータがアニメーションを停止したり、通知がポップアップする準備ができたら消えたりすることができるものはありますか? – ThisDarkTao

+0

http://developer.apple.com/library/mac/#documentation/StoreKit/Reference/SKPaymentQueue_Class/Reference/Reference.html 基本的に、SKPaymentTransactionObserverをSKPaymentQueueに登録したいとします。次のコールバックを受け取ります - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions。 トランザクションを含むトランザクション(トランザクションのtransactionStateプロパティがSKPaymentTransactionStatePurchasedであることを確認する必要があります。支払いが失敗したり復元されるため、 – RyanSullivan

+0

http://developer.apple.com/library/mac/#documentation/NetworkingInternet/コンセプチュアル/ StoreKitGuide/Introduction/Introduction.htmlは、あなたがしなければならないことを詳しく説明する非常に良いガイドです。「アプリケーションへのストアの追加」セクションを参照してください。 – RyanSullivan