sendTakePhoto method
Sending the event to take a photo
Implementation
@override
Future<NUIMiniProgramFile?> sendTakePhoto({bool rear = true}) async{
if(_simulator != null) return _simulator!.sendTakePhoto(rear: rear);
final internalMessage = NUIMiniProgramInternalMessage(type: NUIMiniProgramEventType.CAMERA, data: "$rear");
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 take photo event with error : $e, stacktrace: $s");
return null;
}
}