🆕 🛑 Capacitor version now available! See capacitor-background-fetch
🛑
npm install cordova-plugin-background-fetch
npx cap sync
With YourApp.xcworkspace
open in XCode, add the following Background Modes Capability:
- Background fetch
- Background processing (Only if you intend to use
BackgroundFetch.scheduleTask
)
- Open your
Info.plist
and add the key "Permitted background task scheduler identifiers"
- Add the required identifier
com.transistorsoft.fetch
.
- If you intend to execute your own custom tasks via
BackgroundFetch.scheduleTask
, you must add those custom identifiers as well. For example, if you intend to execute a customtaskId: 'com.transistorsoft.customtask'
, you must add the identifiercom.transistorsoft.customtask
to your "Permitted background task scheduler identifiers", as well.
com.transistorsoft.
— In the future, the com.transistorsoft
prefix may become required.
BackgroundFetch.scheduleTask(TaskConfig(
taskId: 'com.transistorsoft.customtask',
delay: 60 * 60 * 1000 // In one hour (milliseconds)
));
For devices running iOS < 13, the Background Geolocation SDK will implement the deprecated iOS Background Fetch API.
In Your AppDelegate.swift
, add the following code (just the +green
lines):
import UIKit
import Capacitor
+import TSBackgroundFetch
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
+ // Added for cordova-plugin-background-fetch
+ func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler:@escaping (UIBackgroundFetchResult) -> Void) {
+ NSLog("AppDelegate received fetch event");
+ TSBackgroundFetch.sharedInstance().perform(completionHandler: completionHandler, applicationState: application.applicationState);
+ }
.
.
.
}
Nothing else to perform