Skip to content

Commit 74a4522

Browse files
committed
feat: Support iOS 12.0
1 parent c3f2430 commit 74a4522

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

example/ios/Runner.xcodeproj/project.pbxproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@
361361
DEVELOPMENT_TEAM = 2BHAXN696Y;
362362
ENABLE_BITCODE = NO;
363363
INFOPLIST_FILE = Runner/Info.plist;
364-
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
364+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
365365
LD_RUNPATH_SEARCH_PATHS = (
366366
"$(inherited)",
367367
"@executable_path/Frameworks",
@@ -491,7 +491,7 @@
491491
DEVELOPMENT_TEAM = 2BHAXN696Y;
492492
ENABLE_BITCODE = NO;
493493
INFOPLIST_FILE = Runner/Info.plist;
494-
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
494+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
495495
LD_RUNPATH_SEARCH_PATHS = (
496496
"$(inherited)",
497497
"@executable_path/Frameworks",
@@ -515,7 +515,7 @@
515515
DEVELOPMENT_TEAM = 2BHAXN696Y;
516516
ENABLE_BITCODE = NO;
517517
INFOPLIST_FILE = Runner/Info.plist;
518-
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
518+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
519519
LD_RUNPATH_SEARCH_PATHS = (
520520
"$(inherited)",
521521
"@executable_path/Frameworks",

ios/Classes/SwiftFlutterForegroundTaskPlugin.swift

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,22 @@ public class SwiftFlutterForegroundTaskPlugin: NSObject, FlutterPlugin {
8585

8686
// ================== App Lifecycle ===================
8787
public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [AnyHashable : Any] = [:]) -> Bool {
88-
SwiftFlutterForegroundTaskPlugin.registerAppRefresh()
88+
UIApplication.shared.setMinimumBackgroundFetchInterval(UIApplication.backgroundFetchIntervalMinimum)
89+
if #available(iOS 13.0, *) {
90+
SwiftFlutterForegroundTaskPlugin.registerAppRefresh()
91+
}
92+
return true
93+
}
94+
95+
public func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) -> Bool {
96+
completionHandler(.newData)
8997
return true
9098
}
9199

92100
public func applicationDidEnterBackground(_ application: UIApplication) {
93-
SwiftFlutterForegroundTaskPlugin.scheduleAppRefresh()
101+
if #available(iOS 13.0, *) {
102+
SwiftFlutterForegroundTaskPlugin.scheduleAppRefresh()
103+
}
94104
}
95105

96106
public func applicationWillTerminate(_ application: UIApplication) {
@@ -123,12 +133,14 @@ public class SwiftFlutterForegroundTaskPlugin: NSObject, FlutterPlugin {
123133
// ============== Background App Refresh ==============
124134
public static var refreshIdentifier: String = "com.pravera.flutter_foreground_task.refresh"
125135

136+
@available(iOS 13.0, *)
126137
private static func registerAppRefresh() {
127138
BGTaskScheduler.shared.register(forTaskWithIdentifier: refreshIdentifier, using: nil) { task in
128139
handleAppRefresh(task: task as! BGAppRefreshTask)
129140
}
130141
}
131142

143+
@available(iOS 13.0, *)
132144
private static func scheduleAppRefresh() {
133145
let request = BGAppRefreshTaskRequest(identifier: refreshIdentifier)
134146
request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60)
@@ -140,10 +152,12 @@ public class SwiftFlutterForegroundTaskPlugin: NSObject, FlutterPlugin {
140152
}
141153
}
142154

155+
@available(iOS 13.0, *)
143156
private static func cancelAppRefresh() {
144157
BGTaskScheduler.shared.cancel(taskRequestWithIdentifier: refreshIdentifier)
145158
}
146159

160+
@available(iOS 13.0, *)
147161
private static func handleAppRefresh(task: BGAppRefreshTask) {
148162
let queue = OperationQueue()
149163
let operation = AppRefreshOperation()

0 commit comments

Comments
 (0)