requestSession method

  1. @override
Future<NUIMiniProgramSession?> requestSession()
override

Sending a request to get the current session

Implementation

@override
Future<NUIMiniProgramSession?> requestSession() async{
  if(_simulator != null) return _simulator!.requestSession();

  final internalMessage = NUIMiniProgramInternalMessage(type: NUIMiniProgramEventType.SESSION, data: '');
  final sessionMessage = NUIMiniProgramMessage(channel: NUIMiniProgramMessage.DEFAULT_CHANNEL, data: jsonEncode(internalMessage));
  try {
    final result = await sendAndAwaitCrossEvent(sessionMessage);
    if(result?.data != null){
      final json = result!.data as Map<String, dynamic>;
      try {
        final session = NUIMiniProgramSession.empty().fromJson(json);
        return session;
      }catch(e, s){
        print("[NUIMiniProgramJSEngine] Failed to parse result data payload to session with error : $e, stacktrace: $s");
        return null;
      }
    }
    else{
      print("[NUIMiniProgramJSEngine] Gotten result without data payload for session request");
      return null;
    }
  }catch(e, s){
    print("[NUIMiniProgramJSEngine] Failed to send session request with error : $e, stacktrace: $s");
    return null;
  }
}