Загрузка изображения из ресурсов приложения Expo для разделения в процессе производства

#android #react-native #expo #react-native-android #assets

#Android #expo #react-native #ресурсы

Вопрос:

У меня есть изображение в моих ресурсах приложения Expo, и я могу получить к нему доступ с помощью следующего кода:

 const asset = Asset.fromModule(require("...")); 
await asset.downloadAsync();
const localUri = asset.localUri;
  

Теперь я хочу загрузить это изображение на сервер с запросом на выборку:

 let formData = new FormData();
formData.append('photo', { uri: localUri, name: "photo", type });
fetch("/endpoint", {
      method: 'POST',
      body: formData,
      headers: {'content-type': 'multipart/form-data'}
)
  

Это работает при использовании сервера разработки, но завершается сбоем после сборки Android .apk.

localUri В обоих случаях (на Android):

 Development: file:///data/user/0/host.exp.exponent/cache/ExperienceData/<username>/ExponentAsset-<hexstring>.jpg
Production: asset:///asset_<hexstring>.jpg
  

Ответ №1:

Хорошо, я исправил проблему, передав localUri через a expo-image-manipulator , а затем используя новый uri для команды выборки. Обработчик изображений изменяет uri с a asset:///... на file:/// uri.

Понятия не имею, почему это не работало раньше.

Комментарии:

1. Не могли бы вы привести пример кода для «передачи localUri через expo-image-manipulator»?

2. показать код здесь