我了解了一些航空公司的应用程序。这提出了一些问题,我找不到答案,也想问你。我的问题没有任何代码,但更多地针对此类应用程序的程序级别。
我想知道的第一件事是:例如,当我使用航空公司的应用程序订票时,我想我的智能手机会在某个地方的网络服务数据库中注册。通常,这些公司会向您发送推送通知以获取进一步的更新。这对我来说意味着APNS的设备令牌保存在数据库表"设备"中,例如,这样他们以后就可以找到我的设备并向我发送通知。
为了让我的问题更清楚,我这样想用户的流量:
- 首次打开航空公司应用程序
- 用户被问及是否允许推送通知
- 用户确认
- APNS正在提供设备令牌
- 航空公司的网络服务将把该设备令牌保存在他们的数据库中
- 如果需要更新,请使用DB中的设备令牌并发送客户端的更新
这将是通过设备令牌识别我的用户的"简单"方法。但是,追踪注册设备的"标准"方式是什么呢?
在我的第一个问题的基础上,我想稍微扩展一下这个例子。大多数航空公司的应用程序都有将机票保存为存折通行证的功能。我们考虑到用户已经接受了该应用程序的推送通知,他将注册并在网络服务器上与设备令牌一起列出,以备将来参考。
据我所知,passkit会向航空公司服务器发送一个web请求,他们必须解析该请求才能与passkit服务器通信。但在这个请求中包含一个由存折应用程序请求的推送令牌,用于接收更新。
现在我想,同一个用户有两个不同的设备令牌吗?我不认为您可以使用现有的设备令牌将消息推送到数据库中的客户端?那么你如何解决这样的问题呢?如果你的数据库中有一个用户注册了,航空公司提供了一张机票作为存折通行证,那么之后存折如何与这些数据正确交互?
我希望我能在问题中表明我的观点:)
感谢
跟踪已注册设备的"标准"方式是什么?
每当用户启动您的应用程序时,您都会收到一个回调
-(void)应用程序:(UIApplication*)应用程序didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken{//将设备令牌与您的用户名关联,并将其发送到服务器}
请注意,设备令牌不断更改。来自Apple文档您不能保存设备令牌并将其用于将来的参考。每次跑步都需要更新它。您的服务器需要同步其令牌数据库。
编辑。。用户流程
为了让我的答案更清楚,我这样思考用户的流量:打开航空公司应用程序用户被问及是否允许推送通知用户确认您向服务器提供设备令牌和用户名。如果您的服务器现在需要发送推送通知,它将使用最新的令牌和将其发送到APN。