initBridge method
Implementation
Future<dynamic> initBridge(Callback callback) async {
try {
LogUtils.i(_kTag, "initBridge start");
int devtoolsId = await _handleVoltronInspectorInit();
_context.startTimeMonitor.startEvent(EngineMonitorEventKey.engineLoadEventInitBridge);
_v8RuntimeId = await VoltronApi.initJsFrameWork(
globalConfig: getGlobalConfigs(),
singleThreadMode: _isSingleThread,
isDevModule: _isDevModule,
groupId: _groupId,
engineId: _engineId,
vfsId: _context.vfsManager.id,
domId: _context.renderContext.domHolder.id,
callback: (value) async {
_isFrameWorkInit = true;
_thirdPartyAdapter?.setVoltronBridgeId(value);
_context.onRuntimeInitialized(_v8RuntimeId);
LogUtils.i(_kTag, "initBridge success, engineId: $_engineId, runtimeId: $_v8RuntimeId");
_context.startTimeMonitor.startEvent(
EngineMonitorEventKey.engineLoadEventLoadCommonJs,
);
var coreBundleLoader = _coreBundleLoader;
if (coreBundleLoader != null) {
try {
await coreBundleLoader.load(this, (ret, e) {
_isFrameWorkInit = ret == 1;
Error? error;
if (!_isFrameWorkInit) {
error = StateError(
"load coreJsBundle failed,check your core jsBundle",
);
} else {
bridgeMap[_engineId] = this;
_context.renderContext.renderBridgeManager.init();
}
callback(_isFrameWorkInit, error);
});
} catch (e) {
if (e is Error) {
LogUtils.e(_kTag, '${e.stackTrace}');
}
callback(_isFrameWorkInit, StateError(e.toString()));
}
} else {
_isFrameWorkInit = true;
bridgeMap[_engineId] = this;
_context.renderContext.renderBridgeManager.init();
callback(_isFrameWorkInit, null);
}
},
devtoolsId: devtoolsId,
);
} catch (e) {
_isFrameWorkInit = false;
if (e is Error) {
LogUtils.e(_kTag, '${e.stackTrace}');
}
callback(false, StateError(e.toString()));
}
}