【问题标题】:Perform an HTTP request in UNNotificationServiceExtension在 UNNotificationServiceExtension 中执行 HTTP 请求
【发布时间】:2018-02-20 09:19:55
【问题描述】:

当我的应用收到远程推送通知时,我需要调用后端服务,即使应用被终止也是如此。为此,我在“didReceive”方法中使用 UNNotificationServiceExtension 拦截通知,并在此方法的主体中执行 http 请求。这是一个危险的程序吗?这会导致一些问题,例如被 Apple Store 拒绝吗?

【问题讨论】:

  • 您可以做任何常规应用程序允许做的事情。虽然时间限制有点困难。
  • 谢谢克里斯蒂克! “时间限制”是指一个进程不能持续太多时间(例如,如果我的 http 请求正在等待来自服务器的响应 10 秒)?
  • 是的,扩展程序的运行时间有限。
  • 完美,再次感谢!
  • 您是否能够让它为您工作?我们遇到的问题是,如果应用程序没有运行(被用户杀死,设备重启),UNNotificationActions 就没有被执行。

标签: ios swift firebase push-notification apple-push-notifications


【解决方案1】:

您绝对可以随心所欲,但请记住,您只能获得大约 30 秒的时间,并且您需要使用同步下载,而不是异步下载。如果您使用异步下载,它可能会在您的完成处理程序调用后立即被终止,这将在您的下载完成之前发生。

【讨论】:

  • 如果我们调用异步并处理完成处理程序以响应它成功或失败的响应。
  • 您必须在方法退出之前调用完成处理程序。
  • 这是不正确的。它不需要是同步的。正如苹果在 wwdc2016 期间推荐的那样,您应该使用 URLSession。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-02
  • 1970-01-01
  • 2017-09-27
  • 2013-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多