是否可以在Android上以发布模式获取本地React Native图像资源的绝对URI?

问题描述 投票:0回答:1

我需要将本地图像资源发布到应用程序的后端,并且我在 Android 上的发布模式下遇到了问题(iOS 调试/发布和 Android 调试工作没有问题)。

要获取资产的 uri,我只需这样做:

const img = require('imagePath');
...
const uri = Image.resolveAssetSource(img).uri;

当我使用上述内容作为图像的 URI 源时,它在所有情况下都有效(甚至 Android 发布模式)。

当我使用上述内容来获取要添加的 URI 以形成后期 API 调用的数据时,它工作正常,但在 Android 发布模式下除外,在该模式下,它会失败并出现通用 500 网络错误,而不会触及后端。

我看到的这些场景之间的唯一区别是,我在 iOS 调试/发布和 Android 调试中获得的 URI 都是绝对的,而我在 Android 发布模式下获得的 URI 是相对的。

有没有办法在Android发布模式下获取本地图像资源的绝对URI而不是相对URI?

android react-native axios release relative-path
1个回答
0
投票

这对我有用:

var imagename="your file name in assets";
const {default: exampleImage } = await import('../screens/assets/'+imagename);
const exampleImageUri = Image.resolveAssetSource(exampleImage).uri
formdata.append("file", {
   uri: exampleImageUri,
   name: imagename,
   type: 'image/png',
});

const myHeaders = new Headers();
myHeaders.append("Content-Type", "multipart/form-data");

var url="your api end point";

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: formdata,
  redirect: "follow"
};

fetch(url, requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
© www.soinside.com 2019 - 2024. All rights reserved.