Swift:连接设备后执行任务

Swift: perform task once device connected

我正在寻找在用户设备重新连接到互联网后执行 API 调用的最佳方法。

背景是我正在为需要将数据 posted 到特定端点的应用构建离线支持。所以我的想法是,当数据提交时设备将处于离线状态,然后一旦设备在线,我将 post 到所需的端点。

我查看了各种后台任务,但找不到可以指定在设备连接到网络后立即执行任务的任务。我知道Apple考虑到电池寿命和其他变量,倾向于限制何时可以执行后台任务,所以这只是不能做的事情吗?

谢谢大家

使用后台 URLSessionConfiguration 创建 URLSession:

let config = URLSessionConfiguration.background(withIdentifier: backgroundIdentifier)
let session = URLSession(configuration: config)

当您使用此会话时,操作将尽可能在后台执行,即使您的应用不是 运行。您可以通过将 isDiscretionary 设置为 true 来进一步配置它,以避免在蜂窝网络上发送数据并等待设备插入。

有关其他信息,请参阅 Downloading Files in the Background。虽然它专注于下载,但相同的过程适用于发布。