@@ -61,42 +61,43 @@ export class FlutterBoost {
61
61
* 设置FlutterBoost的配置信息
62
62
* @param delegate FlutterBoost的委托对象
63
63
* @param context 上下文对象
64
- * @param callback 回调函数
64
+ * @param onEngineReady 回调函数
65
65
* @param options FlutterBoost的配置选项
66
66
*/
67
67
public async setup(delegate: FlutterBoostDelegate,
68
68
context: common.Context,
69
- callback : (engine: FlutterEngine) => void,
69
+ onEngineReady : (engine: FlutterEngine) => void,
70
70
options: FlutterBoostSetupOptions | null) {
71
71
72
- this.delegate = delegate
72
+ this.delegate = delegate;
73
73
74
- // 0.如果为null,指定默认设置参数(初始路由为/,入口参数main)
75
74
if (options == null) {
76
- options = FlutterBoostSetupOptions.createDefault()
75
+ // 指定默认设置参数(初始路由为/,入口参数main)
76
+ options = FlutterBoostSetupOptions.createDefault();
77
77
}
78
78
79
- // 1.初始化engine
79
+ // 1. 初始化引擎
80
80
let engine: FlutterEngine | null = this.getEngine()
81
81
if (engine == null) {
82
- const engineProvider = options.getFlutterEngineProvider()
82
+ const engineProvider = options.getFlutterEngineProvider();
83
83
if (engineProvider) {
84
- engine = engineProvider.provideFlutterEngine(context)
84
+ engine = engineProvider.provideFlutterEngine(context);
85
85
}
86
86
if (engine == null) {
87
- engine = new FlutterEngine(context, null, null, new PlatformViewsController())
88
- await engine.init(context, options.getShellArgs(), true, true, null, options.getPlugins())
87
+ engine = new FlutterEngine(context, null, null, new PlatformViewsController());
88
+ await engine.init(context, options.getShellArgs(), true);
89
89
}
90
90
FlutterEngineCache.getInstance().put(FlutterBoost.ENGINE_ID, engine);
91
91
}
92
+ this.flutterEngine = engine;
92
93
93
- this.flutterEngine = engine
94
- //2. 设置代理
95
- if (this.delegate) {
96
- this.getPlugin()?.setDelegate(this.delegate)
97
- }
94
+ // 2. 通知业务引擎就绪
95
+ onEngineReady(engine);
96
+
97
+ // 3. 设置message channel消息代理
98
+ this.getPlugin()!.setDelegate(this.delegate);
98
99
99
- // 3.预热FlutterEngine
100
+ // 4. DartVM预热
100
101
if (!engine.getDartExecutor().isExecutingDart()) {
101
102
const navigationChannel = engine.getNavigationChannel()
102
103
if (navigationChannel) {
@@ -110,13 +111,6 @@ export class FlutterBoost {
110
111
);
111
112
engine.getDartExecutor().executeDartEntrypoint(dartEntrypoint, options.getDartEntrypointArgs());
112
113
}
113
-
114
- if (callback) {
115
- callback(engine)
116
- }
117
-
118
- // TODO:添加OHOS实现
119
- // setupActivityLifecycleCallback(application, isBackForegroundEventOverridden);
120
114
}
121
115
122
116
@@ -182,15 +176,13 @@ export class FlutterBoost {
182
176
let engine = this.getEngine();
183
177
if (engine) {
184
178
const plugin: FlutterBoostPlugin | null = FlutterBoostUtils.getPlugin(engine);
185
- if (plugin !== undefined ) {
179
+ if (plugin != null ) {
186
180
this.plugin = plugin;
187
181
} else {
188
182
throw new Error('getPlugin fail. can not get the FlutterBoostPlugin instance,')
189
- return null
190
183
}
191
184
} else {
192
185
throw new Error('getPlugin fail. can not get the engine instance,')
193
- return null
194
186
}
195
187
}
196
188
return this.plugin;
0 commit comments