使用城市飞艇服务推送通知应用程序的策略(iPhone)

问题描述:

我正在构建一个应用程序,使用精美的Urban Airship API来发送用户推送通知。使用城市飞艇服务推送通知应用程序的策略(iPhone)

该应用程序会跟踪用户添加到应用程序的事件日期。 这意味着我没有适合处理推送的服务器,应用本身只需在用户添加事件日期和时间时与城市AS安排推送通知。

如果用户决定在事件发生之前删除事件,我将它与Urban AS一起取消安排。一切都很好。但是,我想不发送通知给已禁用通知的用户,因为这些通知是免费的:)

我知道苹果的推送通知API可以确保用户不会收到任何通知关闭设置。他们会忽略Urban AS发送的预定通知,这会浪费带宽和金钱。

如何判断用户是否禁用了我的应用程序的通知?

此外,除了测试用户是否已关闭通知并告诉Urban AS取消所有通知,并且如果用户将其重新打开,我将不得不通过所有事件并重新测试 - 调度他们:/每次应用程序运行。

任何人都可以想出一种方法,我不必用各种条件代码来填充我的appDelegate来测试这些场景吗?例如用户自上次运行应用程序以来关闭了推送,用户自上次以来已将其打开。我也担心用户是否会理解这种行为?

猜猜我只是要求这个推/城市飞艇设置的最佳做法:) 谢谢。

正如我所看到的,[[UIApplication sharedApplication] enabledRemoteNotificationTypes]将返回用户当前为您的应用启用的通知类型。

否则,你是对的。您必须在每次启动应用程序时调用此方法,并且在用户重新启用通知的情况下,重新安排您以前删除的所有事件。

至于使用各种条件填充应用程序委托的问题,您可能希望编写一个单独的PushNotificationsController(不是UIViewController,只是一个NSObject子类),它将处理所有与推送有关的东西。

+0

谢谢Ole。 是的,我一定会把它放在自己的控制器中。我的意思是,当appDelegate收到applicationDidFinishLaunching消息时,我测试了大量其他的东西。 我会看看我是否能够想出一些轻量级的东西,以便跟踪用户从推出到推出的推送偏好并据此采取行动。 再次感谢您的意见。 – RickiG 2010-03-24 10:58:46