我正在发出一个从UNUserNotification操作启动的HTTPS请求,因此它会在我的应用程序在后台运行时执行。我怀疑Siesta不支持此功能,在这种情况下我会发出功能请求!但首先我想知道我是否正确。
当我设置&使用Siesta在后台发出请求,在我打开我的应用程序之前似乎没有请求,当我收到URLSessionTask
错误代码-1003“HTTP加载失败”并显示消息:URL Session Task Failed: A server with the specified hostname could not be found.
。
如果我使用普通URLSession
发出请求,而不使用样板文件为后台执行配置会话,这就是我看到的完全相同的行为:
let config = URLSessionConfiguration.background(withIdentifier: String(format: "%f", Date().timeIntervalSinceReferenceDate))
config.isDiscretionary = isDiscretionary
config.requestCachePolicy = .reloadIgnoringLocalCacheData
config.sessionSendsLaunchEvents = true
config.timeoutIntervalForResource = backgroundTimeoutInterval
return URLSession(configuration: config,
delegate: self,
delegateQueue: .main)
在Siesta中是否有开箱即用的方式来获取此行为?
答案 0 :(得分:0)
是的,Siesta目前没有正式支持后台请求,但它也没有正式排除它们。
在Siesta中,背景请求的含义并不完全清楚。它是一个内存缓存,所以请求的数据在哪里?然而,Siesta持久的缓存支持很快就会从“自己动手”开始逐步“开箱即用”,此时后台请求变得更加引人注目。
您应该能够为您的Siesta服务构造函数传递URLSession
为后台请求配置,如上例所示,Siesta将很乐意使用它来发出请求,与以往一样。不太清楚的是,这些回复到达时会发生什么;如果有必要,你可以坚持不懈地回应。