2010-11-05 48 views
0

我有我的(沙盒)在應用程序購買工作,但我如何確定應用程序是否忙於與服務器通信?我有一個艱難的時間讓我的正常ActiviyIndi​​cator在這個環境中工作,應用程序似乎進入和退出整個過程的響應。然後,如果用戶在finishTransaction之前關閉了屏幕,他們可能會被抓到一個人造環路中,如果他們在下載完成之前關閉屏幕,他們可能永遠不會下載它們。如何在App內購買與服務器通信時管理界面?

任何示例或建議,將不勝感激。

+0

這是不是一個刷過,這是一個真正的查詢;不是蘋果有一個建議,完全是這種情況? – KevinDTimm 2010-11-05 02:13:41

回答

0

您應該通過響應代理方法來管理通信,並且還要實現SKPaymentTransactionObserver。

如果用戶在交易完成之前關閉應用程序,那麼當用戶下次打開應用程序時,該進程將/應該恢復。

您的應用程序在啓動時應將觀察者與付款隊列關聯,而不是等到用戶嘗試購買物品。應用程序終止時事務不會丟失。應用程序下次啓動時,Store Kit將恢復處理事務。在應用程序初始化期間添加觀察者可確保所有事務都返回到您的應用程序。

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/MakingaPurchase/MakingaPurchase.html#//apple_ref/doc/uid/TP40008267-CH3-SW1

+0

我在監控UIApplicationDidBecomeActiveNotification並在應用程序「變爲活動狀態」時執行SKPaymentTransactionObserver - 但問題是應用程序在整個購買過程中「變爲活動狀態」(似乎每次警報被解除時) - 因此SKPaymentTransactionObserver被調用在每次購買期間多次...有沒有一種方法可以區分App Store何時發送「成爲活動」通知和何時應用程序「從多任務中變爲活動」? – Chris 2010-11-06 17:39:45

+0

是的,看看UIApplicationDelegate協議及其方法,瞭解如何區分應用程序何時從後臺變爲活動狀態或者何時被盯住:http://developer.apple.com/library/ios/#documentation/ uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html – vfn 2010-11-07 22:43:32

+0

預計觀察者在購買過程中會一直得到通知。它會知道購買的時間,完成時間以及開始和結束之間的所有轉換。看看它的文檔:http://developer.apple.com/library/ios/#documentation/StoreKit/Reference/SKPaymentTransactionObserver_Protocol/Reference/Reference.html – vfn 2010-11-07 22:46:12