2010-03-23 70 views
2

我正在構建一個應用程序,使用精美的Urban Airship API來發送用戶推送通知。使用城市飛艇服務推送通知應用程序的策略(iPhone)

該應用程序會跟蹤用戶添加到應用程序的事件日期。 這意味着我沒有適合處理推送的服務器,應用本身只需在用戶添加事件日期和時間時與城市AS安排推送通知。

如果用戶決定在事件發生之前刪除事件,我將它與Urban AS一起取消安排。一切都很好。但是,我想不發送通知給已禁用通知的用戶,因爲這些通知是免費的:)

我知道蘋果的推送通知API可以確保用戶不會收到任何通知關閉設置。他們會忽略Urban AS發送的預定通知,這會浪費帶寬和金錢。

如何判斷用戶是否禁用了我的應用程序的通知?

此外,除了測試用戶是否已關閉通知並告訴Urban AS取消所有通知,並且如果用戶將其重新打開,我將不得不通過所有事件並重新測試 - 調度他們:/每次應用程序運行。

任何人都可以想出一種方法,我不必用各種條件代碼來填充我的appDelegate來測試這些場景嗎?例如用戶自上次運行應用程序以來關閉了推送,用戶自上次以來已將其打開。我也擔心用戶是否會理解這種行爲?

猜猜我只是要求這個推/城市飛艇設置的最佳做法:) 謝謝。

回答

1

正如我所看到的,[[UIApplication sharedApplication] enabledRemoteNotificationTypes]將返回用戶當前爲您的應用啓用的通知類型。

否則,你是對的。您必須在每次啓動應用程序時調用此方法,並且在用戶重新啓用通知的情況下,重新安排您以前刪除的所有事件。

至於使用各種條件填充應用程序委託的問題,您可能希望編寫一個單獨的PushNotificationsController(不是UIViewController,只是一個NSObject子類),它將處理所有與推送有關的東西。

+0

謝謝Ole。 是的,我一定會把它放在自己的控制器中。我的意思是,當appDelegate收到applicationDidFinishLaunching消息時,我測試了大量其他的東西。 我會看看我是否能夠想出一些輕量級的東西,以便跟蹤用戶從推出到推出的推送偏好並據此採取行動。 再次感謝您的意見。 – RickiG 2010-03-24 10:58:46

相關問題