问题描述
我在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
解决方法
好吧,我通过将localUri
传递到expo-image-manipulator
,然后将新的uri用作访存命令来解决了这个问题。
图像操纵器将uri从asset:///...
更改为file:///
uri。
不知道为什么以前不起作用。