是否可以在显示本地通知之前触发 api 调用?

Posted

技术标签:

【中文标题】是否可以在显示本地通知之前触发 api 调用?【英文标题】:Is it possible to trigger an api call before displaying local notifications? 【发布时间】:2017-04-12 13:11:53 【问题描述】:

我的项目集成了我编写的自定义 API,用于检索我在应用程序上显示的数据。我也在添加通知的过程中。我目前正在实现本地通知,我有点怀疑是否可以在显示本地通知之前调用 API。我想这样做的原因是因为数据库会随着时间而变化,我需要做一个新的查询来获取新数据。

基本上,我想要做的是调用 api 并在显示预定通知之前获取数据以显示通知。我怎样才能实现这一目标?有人做过类似的吗?

【问题讨论】:

【参考方案1】:

您无法保证任何事情,但您可以实现后台获取和内容可用推送,并拥有尽可能新鲜的数据。

这里有一篇很好的技术文章:https://layer.com/how-we-leverage-ios-push-notifications/

基本上:

    如果您的应用被终止或从未运行,您将无法获取数据。 如果您的应用已经运行,您可以实现后台提取,然后在不确定的时间获得 30 秒的窗口,以便尽可能保持最新状态。 服务器可以发送带有content-available 标志的空通知来尝试触发后台获取。如果您的数据负载很小,它可以在通知中发送。

您无法安排任何事情在特定时间发生。您可以对本地通知做的最好的事情可能是实现它的自定义视图(iOS 10 功能)——并在该视图中获取新数据。执行此操作时,您处于扩展程序中,因此这不是微不足道的。

【讨论】:

引用的链接不再指向该文章。这是新链接:layer.com/how-we-leverage-ios-push-notifications ...我会编辑答案,但是,它只有 4 个字符的差异,所以所以不会让我完成编辑...而且,我真的找不到任何其他东西改变。

以上是关于是否可以在显示本地通知之前触发 api 调用?的主要内容,如果未能解决你的问题,请参考以下文章

本地通知触发时检测

是否可以在事件 IOS 之后触发本地通知?

本地通知在计划外的时间多次触发

使用本地通知 api 在 swift 3 中触发每周通知

Iphone 模拟器:本地通知触发两次但从不显示?

检测应用程序处于后台/非活动状态时是不是触发了本地通知