首页 > 解决方案 > 发送 HTTP POST 请求时出现后台模式问题

问题描述

从服务器获取 Firebase 通知时,我正在发送 HTTP POST 请求。我收到通知并想在不点击通知的情况下发送请求。是否可以在不点击通知的情况下发送请求?

标签: iosswiftfirebase

解决方案


这可能会在不点击通知的情况下从服务器获取内容提供一些想法。

  1. content-available:设置内容可用仅在应用程序处于后台(非活动,后台)时有效。如果应用程序被终止或什至没有打开,那么内容可用将不起作用。苹果限制发送内容可用不超过每小时 5 个的通知。

    https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html

  2. mutable-content: Apple 提供Notification Content ExtensionNotification Service Extension. 它有 30 秒的时间从服务器下载您的内容。如果服务器调用超过 30 秒,则扩展自动清除 api 调用,并向用户显示通知。要使用它,您必须创建一个扩展目标。 https://medium.com/@prianka.kariat/ios-10-notifications-with-attachments-and-much-more-169a7405ddaf

    注意:您不应该使用可变内容从服务器中提取数据。为什么,因为必须向用户显示通知。在某些情况下,开发人员我们希望在不打开应用程序的情况下从服务器下载数据。mutable-content 不适合这个目的。

    3.Background fetch后台提取由系统以适当的时间间隔自动启动。

    Background Fetch 的一个非常重要且很酷的功能是它能够了解应该允许应用程序启动到后台并进行更新的时间。例如,假设用户每天早上 8:30 左右使用新闻应用程序(阅读一些新闻和一些热咖啡)。使用几次后,系统会发现应用程序下次运行的时间很可能会在同一时间左右,因此请注意让它在正常启动时间之前上线并更新(可能是上午 8:00 左右)。这样,当用户打开应用程序时,新的和刷新的内容就在那里等待着他,而不是相反!此功能称为使用预测。
    教程:https://www.raywenderlich.com/143128/background-modes-tutorial-getting-started(搜索:测试后台获取)


推荐阅读