runMasamuneApp function
Future<void>
runMasamuneApp(
- MasamuneApp masamuneApp(
- List<
MasamuneAdapter> adapters
- List<
- List<
MasamuneAdapter> masamuneAdapters = const [],
Function to apply MasamuneAdapter for Masamune Framework just before runApp, etc.
Runs instead of runApp.
runApp internally by passing masamuneApp
to masamuneApp
.
Passing masamuneAdapters
makes it easy to use additional plug-ins for the Masamune Framework.
(If masamuneAdapters
is specified, adapters
must also be passed in MasamuneApp.
Masamune Framework用のMasamuneAdapterをrunAppの直前などに適用するためのファンクション。
runAppの代わりに実行します。
masamuneApp
にMasamuneAppを渡すことで内部でrunAppを実行します。
masamuneAdapters
を渡すことでMasamune Frameworkの追加プラグインを楽に利用することができます。
(masamuneAdapters
を指定する場合はMasamuneApp内でもadapters
を渡してください。)
Implementation
Future<void> runMasamuneApp(
MasamuneApp Function(List<MasamuneAdapter> adapters) masamuneApp, {
// TODO: 非アクティブにするが一応残しておく
// bool setPathUrlStrategy = true,
List<MasamuneAdapter> masamuneAdapters = const [],
}) async {
// TODO: 非アクティブにするが一応残しておく
// if (setPathUrlStrategy) {
// AppRouter.setPathUrlStrategy();
// }
final useRunZonedGuarded = masamuneAdapters.any((e) => e.runZonedGuarded);
if (useRunZonedGuarded) {
runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
for (final adapter in masamuneAdapters) {
await adapter.onPreRunApp();
}
runApp(masamuneApp.call(masamuneAdapters));
}, (error, stack) {
for (final adapter in masamuneAdapters) {
adapter.onError(error, stack);
}
});
} else {
WidgetsFlutterBinding.ensureInitialized();
for (final adapter in masamuneAdapters) {
await adapter.onPreRunApp();
}
runApp(masamuneApp.call(masamuneAdapters));
}
}