sendTakePhoto method

  1. @override
Future<NUIMiniProgramFile?> sendTakePhoto({
  1. bool rear = true,
})
override

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;
  }
}