2013-07-19 65 views
3

在應用程序內購買流程標準的SKDownload當託管內容是: 如何檢索已購買的內容

  • 做交易
  • 在交易中的「購買」狀態進入,檢索SKDownload和啓動下載
  • 下載完成的時候,那麼我們可以爲「完成」申報交易
  • 這是好的。 想象一下,我們希望恢復所有購買的內容,這是因爲我們刪除並重新安裝了我們的應用程序,或者僅僅是因爲我們將它安裝在其他設備中。現在,WWDC 2012會議就此問題進行了確認,當您恢復所有購買時,您將獲得要恢復的完整內容列表,但可能您不希望全部下載它們。在這種情況下,您應該爲用戶提供下載哪些內容的選擇,然後排隊所選產品的SKDownload;一旦下載終止並且內容成功安裝,您可以聲明事務已完成。 會話視頻沒有說什麼,而是您應該如何處理被拒絕或延遲下載。據我所知,沒有辦法將SKDownload保存到某個地方並在以後檢索,並且沒有API向iTunes詢問這樣的事情「給我這個已經購買的產品的SK下載」。 所以根據我的說法,有兩種選擇可以繞過這種情況:

  • 您會要求恢復非購買的東西;這不是優雅的,但它的作品
  • 你開始程序,然後你暫停它;這將在稍後恢復。但是這個解決方案有幾個缺點:你無法控制系統如何管理SKDownload,如果經過一段時間,它可能會取消。我從未嘗試過這種解決方案
  • 有人遇到過這個問題,並找到了更好的解決方案嗎?是否有意義與Apple打開增強請求?

    回答

    1

    我總是按照您的建議去做,只是「重購」購買的物品,以便它能夠通過正常的購買流程。在完成下載之前,您不能將交易標記爲已完成。所以,如果你暫停它,當你的應用程序再次啓動時,應用程序將停止運行,隊列將關閉並嘗試完成購買,這將再次啓動您的下載邏輯。當我打開應用程序完成購買時,用戶不斷彈出此事件似乎更加惱人。

    SKDownload文檔說,

    您的應用永遠不會直接創建SKDownload對象。相反,在處理付款後,您的應用會讀取交易對象的下載屬性以檢索與該交易相關聯的SKDownload對象數組。