Как передать данные изображения в собственный модуль в React Native?

В моем классе, который реализует RCTBridgeModule протокол в Xcode, я пытаюсь написать RCT_EXPORT_MEATHOD что я могу предоставить React Native code для использования данных изображения. В настоящее время я могу записать образ на диск в React Native, а затем передать путь к нативному методу, но мне интересно, есть ли лучший метод для прямой передачи данных изображения для лучшей производительности?

Итак, вместо этого:

RCT_EXPORT_METHOD(scanImage:(NSString *)path) {
  UIImage *sampleImage = [[UIImage alloc] initWithContentsOfFile:path];  
  [self processImage: UIImage];
}

Нечто подобное:

RCT_EXPORT_METHOD(scanImage:(NSData *)imageData) {
  [self processImageWithData: imageData];
}

1 ответ

Ты можешь использовать [RCTConvert UIImage:icon] метод из #import <React/RCTConvert.h>

Вам необходимо указать "схема" как "данные". Для получения более подробной информации смотрите исходный код ниже: https://github.com/facebook/react-native/blob/master/React/Base/RCTConvert.m#L762

Для меня это работает:

  NSURL *url = [NSURL URLWithString:[imagePath stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]];
  UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:url]];

imagePath является NSString происходит от реактивного моста (используя react-native-image-pickerответ - response.uri).

Другие вопросы по тегам