发送HTTP POST请求时在后台模式下出现问题

时间:2019-01-24 16:05:52

标签: ios swift firebase

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

2 个答案:

答案 0 :(得分:0)

是的。如您在this Link中所见,如果启用后台模式并将通知有效负载中的content-available设置为1,则应用程序将调用方法application:didReceiveRemoteNotification:fetchCompletionHandler :,因此您可以使用它来发出请求

答案 1 :(得分:0)

这可能会给您一些无需点击通知即可从服务器获取内容的想法。

  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

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

    3。Background fetch, 系统会在适当的时间间隔自动启动后台提取。

    Background Fetch的一个非常重要且很酷的功能是它能够了解应该允许某个应用启动到后台并进行更新的时间。例如,假设用户每天早上8:30左右使用新闻应用程序(阅读一些新闻以及一些热咖啡)。经过几次使用后,系统得知下一次运行该应用程序的时间很可能大约是同一时间,因此请务必使其正常运行并在正常启动时间之前进行更新(这可能是上午8:00左右)。这样,当用户打开应用程序时,新的和刷新的内容就在那里等待着他,而不是相反!此功能称为使用情况预测。
    Tutorial: https://www.raywenderlich.com/143128/background-modes-tutorial-getting-started (Search for: Testing Background Fetch)