我正在研究为推送通知设计和开发服务,并试图了解 Apple 应用程序在注册推送通知和存储令牌时的处理顺序。我目前正在开发的是一项服务,它允许订阅我们服务器上特定处理发生的个别更改。当它们发生时,电话用户可能会收到“A”、“B”或“C”类型的消息。如果需要,电话用户必须单独“订阅”每种类型。否则他们可以忽略它而不订阅。
因此,电话 4 上的用户 Fred 启动我们的应用程序,登录,然后能够打开或关闭对作为推送通知发送的事件的订阅。
因此,我需要将 Fred 登录的详细信息与 Phone #4 的设备令牌以及特定订阅相关联。
所以我特别重要的问题是。
当手机连接到 APNS 服务器以获取其设备令牌时,这是在应用程序启动时自动进行的吗?或者这可以在以后的步骤中启动吗?即,在通过我们的应用程序的登录屏幕之后。
我们可以(我们被允许)将设备令牌存储在手机上的应用程序数据存储中吗?或者,应用程序是否应该在每次运行应用程序时都连接到 APNS 服务器?
应用程序如何知道它是否已经调用了 APNS 服务器并检索了令牌,或者如上所述,它是否应该在应用程序运行时调用 APNS 服务器?
我们可以(是否允许)在应用程序运行时将令牌存储在应用程序的内存中,以便我们可以正确订阅和取消订阅特定消息?
我们还需要能够列出特定用户在其所有设备上可能拥有的所有订阅,以便用户可以移除旧设备(如果他们更换手机)。或者我们是否可以依赖从调用 APNS 返回的数据——当我们尝试推送通知时——来通知我们设备令牌不再有效?
或者有没有更好的方法把这一切联系在一起?