2

我正在构建一个应用程序,它使用精细的 Urban Airship api 来发送用户推送通知。

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

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

我知道 Apple 的 Push Notification API 确保用户在设置中将其关闭时不会收到任何通知。他们将简单地忽略 Urban AS 发送的预定通知,这是对带宽和金钱的浪费。

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

此外,除了测试用户是否关闭通知然后告诉 Urban AS 取消所有通知,如果用户重新打开它们,我将不得不检查所有事件并重新安排它们,我看不到其他选择:/每次应用程序运行时。

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

猜猜我只是要求这个推送/城市飞艇设置的一些最佳实践:) 谢谢。

4

1 回答 1

1

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

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

As to the question of filling up your app delegate with all kinds of conditionals, you might want to write a separate PushNotificationsController (not a UIViewController, just a NSObject subclass) that will handle all push-related stuff.

于 2010-03-23T17:18:44.203 回答