BGTasks 1.0.8

BGTasks 1.0.8

Shridhara V 维护。



BGTasks 1.0.8

  • 作者
  • Shridhara V

BackgroundTasks

苹果在 iOS 13 中引入了 BackgroundTasks 框架,允许应用程序在后台状态下运行任务以保持应用内容更新。当应用程序启动时注册任务启动处理器,并根据需求进行调度。系统会启动应用程序后台并执行任务。系统决定启动后台任务的最好时机,并提供最多 30 秒的后台运行时间。在指定时间内完成您的任务并确认,否则系统会终止应用程序。

BGTasks

Swift 5.1 CocoaPods

BGTasks 是对 iOS 提供的 BackgroundTasks 框架的包装,以确保易于使用案例的集成和配置,并在其中处理所有复杂的 BackgroundTasks 功能。框架中提供了以下功能:

  • 轻松集成或注册用于后台同步/刷新的使用案例。
  • 处理操作系统提供的所有复杂注册和回调机制。
  • 根据以下策略优先使用案例
    • 策略 [everyTime, onceADayAnyTime, every4Hours, every12Hours, every24Hours]
    • 根据阈值或自上次同步时间的已过时间间隔将回调分配给使用案例。
  • 内置分析支持以了解已安排、启动和完成多少任务。这还提供了针对使用案例级别的数据。

API用法

框架初始化

import BGTasks

let permittedIdentifiers: [BGTaskSchedulerType: String] = [
    .appRefreshTask: "com.app.refresh.task",
    .processingTaskWithConnectivityWithExternalPower: "com.processing.task.with.connect.with.power",
    .processingTaskWithConnectivityWithoutExternalPower: "com.processing.task.with.connect.no.power",
    .processingTaskWithoutConnectivity: "com.processing.task.no.connectivity"
]
let config = BGConfigurationProvider.RegistrationData(permittedIdentifiers: permittedIdentifiers)
BGConfigurationProvider.shared.configure(config: config)

所有标识符必须添加到项目的Info.plist文件中的BGTaskSchedulerPermittedIdentifiers键下。

用例注册

import BGTasks

let data = BGSyncRegistrationData(
    identifier: "<unique-id>",
    configuration: .init(strategy: .everyTime,
                         requiresNetworkConnectivity: true)) { completion in
    //perform and call completion.
    completion(true)
}
BGFrameworkFactory.registrationController().registerSyncItem(data)

安装

CocoaPods

CocoaPods 是一个用于 Cocoa 项目的依赖管理器。有关使用和安装说明,请访问他们的网站。要使用 CocoaPods 将 BGTasks 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它。

pod 'BGTasks', '~> 1.0.2'

信用

ShridharSrikanth KV