3

私はアプリ内購入の実装に取り​​組んでいますが、タイムアウトメソッドの使用に本当に悩んでいます。ストアから製品をロードしているときにタイムアウトしても問題ないようです。しかし、私の懸念は、購入時にタイムアウトを使用することです。タイムアウトの一環として、すべての処理を停止する必要があると思います。特に支払いが関係しているため、これは危険な場合があると思います。しかし、タイムアウトがないと、ユーザーが無期限にハングしたままになる可能性があります。または、処理を停止しないタイムアウトを使用すると、ユーザーは、プロセスがまだハングしていることを知らずにプロセスを再試行できます。iOSでこの機能を正常に実装した人から、コーディングの知恵をコーディングするためのベストプラクティスの言葉をいただければ幸いです。

いくつかのメモを追加するには:私はMKStoreKitを使用しています。上記の質問を書いたとき、私はそれを非シングルトンにしました(タイムアウトの一部として、ストアを無効にしていたので、それは悪い考えだと判断しました)。現在、ストアはシングルトンであり、インスタンス化されると常に周りにあります。製品のロード時、および購入/復元時にアクティビティインジケーターを表示しています。これらのアクションから受信した通知は、アクティビティインジケーターを停止します。

これまでのところすべて問題なく動作していますが、実装した人からは、通知が届かない、または長い間届かないことがよくあるのではないかと思います。基本的に、通知を受け取ったとしても、StoreKitプロセスにタイムアウトタイマーを実装する必要があるかどうかを判断しようとしています。

4

1 に答える 1

1

アプリ内購入でタイムアウト機能を実装しないでください。ネットワーク接続 (Wi-Fi) の強度/速度およびネットワークの負荷が原因で、アプリ内購入に時間がかかっているため、これは悪いアプローチです。

アプリ内購入が完了するまでに時間がかかるという同じ問題がありました。

UIActivityIndicatorプロセスが行われていることを表示するために を追加しました。

を表示するのUIActivityIndicatorは非常に退屈に思えたので、MBProgressHUDを使用していくつかの有用なメッセージを追加しました。

于 2013-05-22T06:22:37.040 に答える