Iniziamo con la modalità background
quando l'utente non usa attivamente l'app per molto tempo il sistema si sposta nello stato di background.
e lo stato di background ferma semplicemente il flusso e sospende l'app. Sospendere l'app è il modo per aumentare la durata della batteria.
background fetch permette all'app di scaricare ed elaborare regolarmente piccole quantità di contenuti dalla rete.
Passiamo attraverso xcode
Crea un nuovo progetto Single View App
Hotkey: shift + command + N
Aggiungi la capacità della modalità sfondo
- Scegli il progetto
- Apri le capacità dell'obiettivo
- Attiva le modalità sfondo
- 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