0

我查看了那里的一些航空公司应用程序。这提出了一些问题,我找不到答案,也想问你。我的问题不会有任何代码,而是更多地针对此类应用程序的程序级别。

我想的第一件事是:例如,当我使用航空公司应用程序预订机票时,我猜我的智能手机将在某处网络服务的数据库中注册。通常公司会向您发送推送通知以获取进一步的更新。这对我来说意味着 APNS 的设备令牌保存在数据库表“设备”中,例如,他们可以稍后找到我的设备并向我发送通知。

为了使我的问题更清楚,我以这种方式考虑用户的流程:

  1. 首次打开航空公司应用程序
  2. 询问用户是否允许推送通知
  3. 用户确认
  4. APNS 正在提供设备令牌
  5. 航空公司的 Web 服务会将该设备令牌保存在其数据库中
  6. 如果需要更新,请使用数据库中的设备令牌并将更新发送到客户端

这将是通过设备令牌识别我的用户的“简单”方式。但是跟踪注册设备的“标准”方式是什么?

为了建立我的第一个问题,我想稍微扩展一下这个例子。大多数航空公司的应用程序都具有将机票保存为存折通行证的功能。我考虑到用户已经接受了应用程序的推送通知,他将注册并在 Web 服务器上列出,并带有设备令牌以供将来参考。

据我所知,passkit 将向航空公司服务器发送一个 Web 请求,他们必须解析该请求才能与 passkit 服务器通信。但在此请求中包含的是存折应用程序请求接收更新的推送令牌。

现在我想,您对同一用户有两个不同的设备令牌?我认为您不能仅使用现有的设备令牌将消息推送到数据库中的客户端吗?那么你如何解决这样的问题呢?如果您在数据库中注册了一个用户,并且航空公司提供了一张机票作为存折通行证,那么存折之后如何正确地与此数据交互?

我希望我能在我的问题中提出我的观点:)

谢谢

4

1 回答 1

1

跟踪注册设备的“标准”方式是什么?

每当用户启动您的应用程序时,您都会收到回调

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{

// 将设备令牌与您的用户名相关联并将其发送到您的服务器
}

请注意,设备令牌不断变化。从Apple 文档 中,您无法保存设备令牌并将其用于将来参考。您需要为每次运行更新它。您的服务器需要同步它的令牌数据库。

编辑..用户流

为了使我的答案更清楚,我以这种方式考虑用户的流程:

打开航空公司应用程序
询问用户是否允许推送通知
用户确认
您向服务器提供设备令牌和用户名。
如果您的服务器现在需要发送推送通知,它会使用最新的令牌和
发送给 APN。  
于 2014-04-25T18:55:32.130 回答