【问题标题】:Server sends data while iOS app is terminated服务器在 iOS 应用程序终止时发送数据
【发布时间】:2018-02-04 04:22:05
【问题描述】:

我有一个与远程服务器通信的应用程序。服务器应该使用远程通知静默地将数据推送到其中,我需要获取这些数据并将其存储到 CoreData 数据库中。用户不会知道整个过程。

当应用程序在前台或后台模式下收到远程通知时,我可以成功获得通知。但是,我还需要在应用程序终止时获取数据。

我搜索了可能的解决方案。例如,如果我不倾向于使用静默通知,this SO question 就很好。我也看到了 PushKit 功能,但我不确定 Apple Review 的结果。

  1. 可能的解决方案是什么?
  2. 如果我想在应用程序终止时使用 VoIP 和 PushKit 获得通知,Apple 会拒绝我的申请吗?

【问题讨论】:

  • 如果您的应用程序类别证明 VoIP 是合理的,那么 Apple 可能不会拒绝。例如,如果您正在构建手机应用程序,那么 Apple 可能不会拒绝,否则就有可能被拒绝。
  • @Raviprakash 我的应用程序与蓝牙低功耗设备通信,我想使用服务器来配置它。它会与VoIP 类别兼容吗?我可以使用为Apple Watch 设计的PKPushType: complication 吗?
  • 有了这么多细节,很难告诉你类别。我建议您通过 DTS 问题或技术布道者联系 Apple。

标签: ios apple-push-notifications pushkit


【解决方案1】:

如果您不是在创建 VoIP 应用,并且希望您的应用出现在 App Store 中,那么正确答案是:不可能。唯一可以做的就是以某种方式调整您的要求。

例如,您可以在通知中心发送一些对用户可见的通知,然后等待用户点击通知或以通常的方式启动应用程序。然后该应用程序将能够执行您需要的所有操作。

【讨论】:

  • 关键是我不想让用户参与。我希望它安静地完成,所以用户不能忽视或拒绝它。
【解决方案2】:

无法保证推送通知的传递,因此您不应依赖它们来同步数据。

例如,如果在设备离线时发送了多个推送通知,则在设备重新在线时仅发送最后一个通知;较早的通知丢失。

当您的应用启动时,它应该做的第一件事就是检查您的服务器是否有新数据。

【讨论】:

  • 这是使用推送通知的另一个缺点。您是否有任何替代解决方案让服务器静默地将一些数据推送到我的应用程序中?我不想让用户参与这个过程。
  • 您可以使用静默推送通知,但您还需要在应用启动时与您的服务器确认
  • 应用程序终止时不会发送静默推送通知,另外会涉及用户打开应用程序。 PushKit 呢?这会是解决方案吗?
  • 只有当您的应用是 voip 应用时,您才能使用 pushkit。如果没有收到推送有什么关系?无论如何,用户并没有运行您的应用程序来查看新数据。当他们启动您的应用程序时,您会从服务器获取新数据,然后他们会看到新数据。
  • 通知包含连接的 BLE 设备的一些配置。目标是通过我们的 Web 仪表板配置我们的 BLE 设备,而无需用户参与。
猜你喜欢
  • 1970-01-01
  • 2019-09-08
  • 2014-01-18
  • 2018-01-04
  • 2015-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多