sendFileSelect method
Sending the file selection event to select a file
Implementation
@override
Future<NUIMiniProgramFile?> sendFileSelect({required List<String> extensions}) async{
if(_simulator != null) return _simulator!.sendFileSelect(extensions: extensions);
final internalMessage = NUIMiniProgramInternalMessage(type: NUIMiniProgramEventType.FILE_SELECT, data: "fileSelect");
final popMessage = NUIMiniProgramMessage(channel: NUIMiniProgramMessage.DEFAULT_CHANNEL, data: jsonEncode(internalMessage));
try {
final result = await sendAndAwaitCrossEvent(popMessage);
if(result?.data != null){
final json = result!.data as Map;
final filename = json["filename"] as String;
final extensions = List<String>.from(json["extensions"] ?? []);
final bytes = json["bytes"] as String;
try {
final fileMessage = NUIMiniProgramFile(filename: filename, bytesString: bytes, extensions: extensions);
return fileMessage;
}catch(e, s){
print("[NUIMiniProgramJSEngine] Failed to parse result data payload to file object with error : $e, stacktrace: $s");
return null;
}
}
else{
print("[NUIMiniProgramJSEngine] Gotten result without data payload");
return null;
}
}catch(e, s){
print("[NUIMiniProgramJSEngine] Failed to send file select event with error : $e, stacktrace: $s");
return null;
}
}