Déjame empezar con el modo de fondo
cuando el usuario no está usando activamente la app durante mucho tiempo el sistema pasa al estado de fondo.
Y el estado de fondo simplemente detiene el flujo y suspende la app. suspender la app es la forma de aumentar la vida de la batería.
background fetch permite que la app descargue y procese regularmente pequeñas cantidades de contenido de la red.
Vamos a pasar por xcode
Crea un nuevo proyecto de Single View App
Hotkey: shift + command + N
Añadir capacidad de modo de fondo
- Elegir proyecto
- Abrir capacidades del objetivo
- Activar modos de fondo
-
- Check Background fetch
-
Open AppDelegate.swift file.
Modify code in file.
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Setup Fetch Interval
UIApplication.shared.setMinimumBackgroundFetchInterval(UIApplication.backgroundFetchIntervalMinimum)
return true
}
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
// Create url which from we will get fresh data
if let url = URL(string: "Professionals developers in the IT sector") {
// Send request
URLSession.shared.dataTask(with: url, completionHandler: { (data, respone, error) in
// Check Data
guard let `data` = data else { completionHandler(.failed); return }
// Get result from data
let result = String(data: data, encoding: .utf8)
// Print result into console
print("performFetchWithCompletionHandler result: (String(describing: result))")
// Call background fetch completion with .newData result
completionHandler(.newData)
}).resume()
}
}
}
Run on simulator.
Yes. Now is nothing happened. We need to simulate bg fetch.
Simulate Background Fetch.
Test Background Fetch without App Starting
Setup application scheme
- Open scheme settings
- Open Options tab
- Check Background Fetch