2013-05-25 89 views
2

我們使用非更新訂閱我們的iOS應用程序,都搞不清楚的時候,並刪除過期的訂閱在哪裏。例如,我們顯示兩個訂閱(7天和30天)。然後用戶購買其中一個訂閱,並將其保存在NSUserDefaults中,並將其保存在服務器上的數據庫中(創建日期,訂閱類型,到期日期)。現在我們遇到的困惑是用戶超過7天(或30天)時,我們如何過期訂閱?在哪裏檢查使用非續訂訂閱的過期訂閱?

我們想這樣做在didFinishLaunchingWithOptions如果用戶處於登錄但是會發生什麼,從來沒有終止他們的應用程序,

回答

0

你可以檢查每個用戶帶來的應用推到前臺的時間。要做到這一點,請在應用代理的-applicationWillEnterForeground方法中進行檢查。如果您想更進一步,可以使用該方法設置一個定時器,該定時器在訂閱到期時觸發。這可以讓您在訂閱結束後儘快過期,即使在用戶使用該應用時結束。

+0

'如果應用程序被終止applicationWillEnterForeground'不叫。 – Firo

2

我會做的applicationDidBecomeActive。這被稱爲每次啓動應用程序,即使它從未終止。我猜你會很安全的。如果有人願意不斷開放您的應用程序以防止到期,那麼他們會非常專注於您的應用程序!此外,大多數人不知道你是如何檢查他們的訂閱,所以他們可能不會認爲它保持開放。

你也應該考慮在存儲NSUserDefaults的他們的訂閱。如果他們刪除應用程序並重新安裝,該怎麼辦?你檢查你的數據庫,並重新加載到默認值?如果是少量數據,則可以將其存儲在鑰匙串中。當應用程序被刪除時,鑰匙串值不會被刪除。