推送iPhone通知 - 接受的方法

时间:2012-04-23 04:28:18

标签: iphone push-notification

我正在研究设计和开发推送通知服务,并试图了解注册推送通知和令牌存储时Apple App中的处理顺序。 我目前正在开发的是一种服务,允许订阅在我们的服务器上进行特定处理的个别更改。 当它们发生时,电话用户可能会收到“A”,“B”或“C”类型的消息。 如果电话用户需要,他们必须单独“订阅”这些类型中的每一种。否则他们可以忽略它而不是订阅。

因此,用户Fred在电话号码4上启动我们的应用程序,登录,然后能够打开或关闭作为推送通知发送的事件的订阅。

所以我需要将Fred的登录信息与Phone#4的设备令牌绑定,并附上特定的订阅。

所以我特别重要的问题是。

当手机连接到APNS服务器以获取其设备令牌时,这是应用程序启动时的自动吗?或者这可以在以后的步骤中启动?即,在浏览我们的应用程序的登录屏幕后。

我们(可以允许)将设备令牌存储在App数据存储中的手机上吗?或者,每次应用程序运行时应用程序是否应连接到APNS服务器?

应用程序如何知道它是否已经被称为APNS服务器并检索了令牌,或者如上所述,它是否应该在应用程序运行时调用APNS服务器?

我们(我们是否允许)在运行时将令牌存储在应用程序的内存中,以便我们可以正确订阅和取消订阅特定邮件?

我们还需要能够列出特定用户可能在其所有设备上拥有的所有订阅,以便用户可以删除旧设备(如果他们更换手机)。或者,当我们尝试推送通知时,我们是否可以依赖来自APNS呼叫的数据 - 通知我们设备令牌不再有效?

还是有更好的方法将这一切联系在一起吗?

1 个答案:

答案 0 :(得分:1)

  

当手机连接到APNS服务器以获取其设备令牌时,是   这个自动启动app?或者这可以在以后的步骤中启动?   即,登录我们的应用程序后。

应用启动后,应用会通过调用registerForRemoteNotificationTypes获取令牌。这将提示用户获得权限,如果授予权限,则使用设备令牌调用回调。

  

我们(我们是否允许)将设备令牌存储在手机中   应用数据存储?或者,应用程序是否应该连接到APNS服务器   每次运行应用程序?

您需要构建一个APN provider,这是一个调用apple来发送推送的Web服务器。与令牌有关的事情是将其发布到使用APN提供程序的服务器。该应用程序不会连接到APNS,您的提供商会这样做,而且它会在推送时发送。

  

我们(我们是否可以)将令牌存储在App的内存中   运行,所以我们可以正确订阅和取消订阅特定   消息?

您可以将令牌保留在客户端上,但实际上并不需要。这是您的Web服务调用APN,因此需要了解用户的订阅首选项。

  

我们还需要能够列出a的所有订阅   特定用户可能拥有所有设备,以便用户可以   删除旧设备(如果他们更换手机)。或者我们可以依赖数据   从呼叫回到APNS - 当我们尝试推送通知时 -   通知我们设备令牌不再有效?

APN还提供您批量调用的反馈服务,该服务返回不再有效的设备令牌。不仅可以您使用此服务,但必须。 Apple会对那些反复发送到不再有效设备的应用感到生气。

  

还是有更好的方法将这一切联系在一起吗?

是的! Parse.com为客户端代码提供了一个很好的包装器,提供者和反馈服务,将单个设备的想法抽象为“通道”的概念,这听起来就像您需要多种通知类型A,B, C,提供了一个超级简单的逐步设置,以及为iOS提供的其他有用的云服务。 (我不是附属的,但是很忠实的粉丝)。