【问题标题】:Alternative to Background Fetch后台获取的替代方案
【发布时间】:2018-03-24 16:28:45
【问题描述】:

我需要每天至少一次通过 HTTPS GET 与服务器同步我的应用程序,以便它可以向其用户提供最新信息。我目前正在使用 Background Fetch API,但它很少触发,以至于应用程序变得无用。在 Android 应用上,我做了一个重复计时器,每 6 小时触发一次,然后运行 ​​HTTPS 请求。

我想知道是否有比 Background Fetch API 更频繁触发的替代方案,如果没有,Instagram、Twitter、Outlook、Snapchat 等应用程序如何在事件发生时看似向用户发送通知(即收到一封电子邮件)?

【问题讨论】:

  • 目前我不认为有任何类似于您似乎在 Android 上使用的 AlarmManager 而不是 Background Fetch... 但是如果您只想发送通知,则不会推送通知工作?如果您在启动应用程序后立即向用户发送推送通知并更新数据...?
  • @DennisWeidmann 我试图让用户不必做任何事情,他们只需打开应用程序,它是最新的数据。我还想提醒用户来自服务器的信息发生变化,尽可能接近它发生的时间,就像收到电子邮件一样。在应用程序启动时运行请求是我接下来要做的,但这需要一段时间(服务器需要大约 7 秒来执行),而且我看到其他应用程序在需要时执行后台任务没有问题,尤其是电子邮件和社交媒体应用。
  • 您将后台获取间隔设置为多少?您是否在获取结束时调用完成处理程序?至少每六个小时一次应该可以通过后台获取轻松实现?
  • @Paulw11 我将最小值设置为 3600(1 小时),它确实正确调用了完成处理程序。我似乎每天只收到一次后台获取调用,通常是在测试设备上的晚上。我每天至少要找两次。
  • iOS 需要一些时间来分析您的应用程序的行为并让事情稳定下来。将newData 传递给完成处理程序的频率和时间将影响iOS 触发后台刷新的时间。简单地将刷新时间设置为最短不会让您频繁调用,尤其是刚开始时。

标签: ios swift background httprequest background-fetch


【解决方案1】:

您可以使用Background Update Notification 在后台定期唤醒您的应用。

【讨论】:

  • 这是否允许我在后台执行代码以及 HTTPS 请求?我该怎么做呢?
  • 是的,但是您需要在需要的时间从某个服务器发送推送通知
猜你喜欢
  • 1970-01-01
  • 2015-11-26
  • 2017-06-17
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
  • 2020-07-13
  • 2019-03-31
相关资源
最近更新 更多