sendInitializedEvent method
Sending the initialized event to notify the parent app that the initial loading has completed
Implementation
Future<bool> sendInitializedEvent({Duration maximumDelay = const Duration(seconds: 1)}) async{
if(_simulator != null) return _simulator!.sendInitializedEvent(maximumDelay: maximumDelay);
final internalMessage = NUIMiniProgramInternalMessage(type: NUIMiniProgramEventType.INITIALIZED, data: "initialized");
final initMessage = NUIMiniProgramMessage(channel: NUIMiniProgramMessage.DEFAULT_CHANNEL, data: jsonEncode(internalMessage));
try {
final completer = Completer<bool>();
Future.delayed(maximumDelay, () => true).then((value) {
if(!completer.isCompleted){
print("NUIMiniProgramWebJSEngine: Reached maximum delay for connection initialization");
completer.complete(false);
}
});
sendAndAwaitCrossEvent(initMessage).then((value) {
print("NUIMiniProgramWebJSEngine: Received initialized response from host");
if(!completer.isCompleted){
completer.complete(true);
}
});
final init = await completer.future;
if(init){
_connectionInitialized = true;
print("NUIMiniProgramWebJSEngine: Connection initialized");
return true;
}
return false;
}catch(e){
print("[NUIMiniProgramJSEngine] Failed to send initialized event with error : $e");
return false;
}
}