Бэкэнд отправляет мне массив из 5 URL-адресов. Я должен загрузить каждый zip-файл в свое приложение для Android, а затем использовать файлы, которые находятся внутри zip-файлов. Я использую библиотеку JSZIP, но я не уверен, что с JSZIP я могу загружать и манипулировать каждым файлом в моем приложении. Этот код делал это, пока я не понял, что, возможно, я должен загрузить и сохранить zip-файлы в приложении и манипулировать ими. Мне нужно только руководство о том, как я могу это сделать
Это мой магазин с mobx
import { observable, decorate } from "mobx";
import FetchUser from "../restProviders/peticiones";
import JSZip from "jszip";
import JSZipUtils from "jszip-utils";
export default class AssetsStore {
urlZip;
data;
obj;
mtl;
png1;
png2;
png3;
isCharged;
rest = new FetchUser();
constructor() {
this.data = [];
this.urlZip = [];
this.obj = "";
this.mtl = "";
this.png1 = "";
this.png2 = "";
this.png3 = "";
this.isCharged = true;
this.getZip()
}
getContents(url) {
var promise = new JSZip.external.Promise(function(resolve, reject) {
JSZipUtils.getBinaryContent(
url,
function(err, data) {
if (err) {
reject(err);
} else {
resolve(data);
}
}
);
});
promise.then(JSZip.loadAsync).then( (zip) => {
return (this.png1 = zip.file("/go/src/mochila_icono.png").name,
this.png2 = zip.file("/go/src/voucher_top.png").name,
this.png3 = zip.file("/go/src/texture_3d.png").name,
this.obj = zip.file("/go/src/objeto_3d.obj").name,
this.mtl = zip.file("/go/src/objeto_3d.mtl").name,
this.isCharged = false,
console.log(zip.files)
)
});
}
async getZip() {
try {
const zip = await this.rest.getAssets();
console.log(zip.data)
zip.data.Content.filter(el => {
this.urlZip.push(el.zipFile);
return this.urlZip;
});
this.getContents(this.urlZip[0]);
} catch (err) {
console.log(err);
}
}
}
decorate(AssetsStore, {
urlZip: observable,
data: observable,
obj: observable,
mtl: observable,
png1: observable,
png2: observable,
png3: observable,
rest: observable
})
Я должен использовать его здесь. В «source» я должен указать путь, но он дает мне консольную ошибку, которая говорит, что корень файла не может быть найден, и это потому, что я не скачал его
<Viro3DObject
source={this.props.arSceneNavigator.viroAppProps.obj}
resources={[
this.props.arSceneNavigator.viroAppProps.mtl,
this.props.arSceneNavigator.viroAppProps.png1,
this.props.arSceneNavigator.viroAppProps.png2,
this.props.arSceneNavigator.viroAppProps.png3]}
position={[-.5, .5, -1]}
scale={[.2, .2, .2]}
type="OBJ" />