This repository was archived by the owner on Feb 25, 2025. It is now read-only.
File tree 2 files changed +19
-16
lines changed
2 files changed +19
-16
lines changed Original file line number Diff line number Diff line change @@ -79,19 +79,15 @@ Future<void> webOnlyWarmupEngine({
79
79
},
80
80
);
81
81
82
- // Should the app "autoStart"?
83
- bool autoStart = true ;
84
- if (engine.flutter != null && engine.loader != null ) {
85
- autoStart = engine.didCreateEngineInitializer == null ;
86
- }
87
- if (autoStart) {
82
+ final engine.FlutterLoader ? loader = engine.flutter? .loader;
83
+ if (loader == null || loader.isAutoStart) {
88
84
// The user does not want control of the app, bootstrap immediately.
89
85
engine.domWindow.console.debug ('Flutter Web Bootstrap: Auto.' );
90
86
await bootstrap.autoStart ();
91
87
} else {
92
88
// Yield control of the bootstrap procedure to the user.
93
89
engine.domWindow.console.debug ('Flutter Web Bootstrap: Programmatic.' );
94
- engine .didCreateEngineInitializer ! (bootstrap.prepareEngineInitializer ());
90
+ loader .didCreateEngineInitializer (bootstrap.prepareEngineInitializer ());
95
91
}
96
92
}
97
93
Original file line number Diff line number Diff line change 6
6
library js_loader;
7
7
8
8
import 'package:js/js.dart' ;
9
+ import 'package:js/js_util.dart' as js_util;
9
10
10
11
import '../configuration.dart' ;
11
12
import 'js_promise.dart' ;
12
13
13
- /// Typedef for the function that notifies JS that the main entrypoint is up and running.
14
- /// As a parameter, a [FlutterEngineInitializer] instance is passed to JS, so the
15
- /// programmer can control the initialization sequence.
16
- typedef DidCreateEngineInitializerFn = void Function (FlutterEngineInitializer );
14
+ @JS ()
15
+ @staticInterop
16
+ class FlutterJS {}
17
+
18
+ extension FlutterJSExtension on FlutterJS {
19
+ external FlutterLoader ? get loader;
20
+ }
17
21
18
22
// Both `flutter`, `loader`(_flutter.loader), must be checked for null before
19
23
// `didCreateEngineInitializer` can be safely accessed.
20
24
@JS ('_flutter' )
21
- external Object ? get flutter;
25
+ external FlutterJS ? get flutter;
22
26
23
- @JS ('_flutter.loader' )
24
- external Object ? get loader;
27
+ @JS ()
28
+ @staticInterop
29
+ class FlutterLoader {}
25
30
26
- @JS ('_flutter.loader.didCreateEngineInitializer' )
27
- external DidCreateEngineInitializerFn ? get didCreateEngineInitializer;
31
+ extension FlutterLoaderExtension on FlutterLoader {
32
+ external void didCreateEngineInitializer (FlutterEngineInitializer initializer);
33
+ bool get isAutoStart => ! js_util.hasProperty (this , 'didCreateEngineInitializer' );
34
+ }
28
35
29
36
// FlutterEngineInitializer
30
37
You can’t perform that action at this time.
0 commit comments