我似乎无法在 IOS 上使用 Flutter workmanager 进行后台获取。
通过调试在 xcode 中调用时,我可以确认它正在工作。只是在部署到设备时永远不会。
我已经初始化了我的工作管理器并设置了回调main.dart
...
Workmanager().initialize(
callbackDispatcher,
isInDebugMode: true
);
}
void callbackDispatcher()
{
Workmanager().executeTask((task, inputData) async
{
function()
return Future.value(true);
});
}
我已将获取后台模式添加到info.plist
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
</array>
我已将系统功能添加到project.pbxproj
SystemCapabilities = {
com.apple.BackgroundModes = {
enabled = 1;
};
};
我已将插件添加到appdelegate.swift
import UIKit
import Flutter
import workmanager
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
UIApplication.shared.setMinimumBackgroundFetchInterval(TimeInterval(60*15))
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
如果有人有工作设置,将不胜感激。