Je suis en train de travailler sur l'ajout d'un flotteur de gestion du travail à mon projet. Maintenant, il fonctionne parfaitement sur le système Android comme suit :
const fetchBackground = "fetchBackground";
void callbackDispatcher() {
Workmanager.executeTask((task, inputData) async {
switch (task) {
case fetchBackground:
Position userLocation = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
notif.Notification notification = new notif.Notification();
notification.showNotificationWithoutSound(userLocation);
break;
}
return Future.value(true);
});
}
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
void initState() {
super.initState();
Workmanager.initialize(
callbackDispatcher,
isInDebugMode: true,
);
Workmanager.registerPeriodicTask(
"1",
fetchBackground,
frequency: Duration(minutes: 15),
);
}
Donc maintenant, toutes les 15 minutes, l'application s'exécutera en arrière-plan dans le suivant et enverra une alerte à l'utilisateur ; c'est parfait. Mais avec IOS je ne peux pas utiliser : registerPeriodicTask.
Workmanager.registerPeriodicTask(
"1",
fetchBackground,
frequency: Duration(minutes: 15),
);
Dans ce cas, l'application fonctionne pour moi sans utiliser registerPeriodicTask, mais je dois exécuter Debug Simulate Background Fetch manuellement afin d'obtenir l'alerte de XCode. Quelle est donc la solution pour que l'application s'exécute toutes les 15 minutes en arrière-plan sous iOS et Android ?