Ionic 在iOS上重建后,电容器.convertFileSrc无效URL

zzoitvuj  于 2023-02-14  发布在  Ionic
关注(0)|答案(1)|浏览(127)

我正在使用电容器文件系统来保存和加载文件。
我保存文件:

const savedFile = await Filesystem.writeFile({
   path: fileName,
   data: this.iconAvatarBase64,
   directory: Directory.Data
});
this.iconAvatarUrlLocalRaw = fileName;
this.iconAvatarUrlLocal = savedFile['uri'];

我在src中使用的文件如下:

getIconAvatarUrlLocal() {
   return Capacitor.convertFileSrc(this.iconAvatarUrlLocal);
}

<img slot="start" class="avatar menu" [src]="sanitizer.bypassSecurityTrustUrl(obj.getIconAvatarUrlLocal())">

当我启动应用程序时,我创建文件,然后将数据保存在本地。我可以显示图像没有问题,我可以停止/重新启动应用程序,文件正在工作。
但是如果我在Xcode中重建我的应用程序,那么文件不工作,img块不能显示它。保存数据被使用,因此图像不被重新创建,链接是已知的。在网络浏览器和Android上我没有这个错误。
奇怪的是"统计"起作用了...

await Filesystem.stat({ path: this.iconAvatarUrlLocalRaw, directory: Directory.Data});

因此,文件存在,但img无法访问该文件...
举个例子:
1.工作:我创建了文件电容器://localhost/* capacitor_file */var/mobile/容器/数据/应用程序/E3BBB3DA-E64B-414F-B67C-34DB4A3D54DD/文档/animalIconAvatar_32_659.5026582928432.svg
1.不工作:在Xcode中重建后:电容器://本地主机/电容器文件/变量/移动设备/容器/数据/应用程序/E3BBB3DA-E64B-414F-B67C-34DB4A3D54DD/文档/动物图标Avatar_32_659.5026582928432.svg
1.工作:我重新创建文件:电容器://本地主机/电容器_文件/变量/移动设备/容器/数据/应用程序/2F3FC606 - 48CF-4C51 - 8EF3-BE7D9B350958/文档/动物图标Avatar_32_960.997327389742.svg
我有2个方法来解决我的问题,但我不知道如何实现它们:
1.重建图像,如果图像不工作。统计工作,因此我不知道如何做检测图像不工作。
1.在Xcode中重建后使链接正常工作
如果有人有一个想法,我就得坚持下去。

ttcibm8c

ttcibm8c1#

溶液,
要检查文件是否存在,我使用:

Capacitor.convertFileSrc(await Filesystem.getUri({ path: fileName, directory: Directory.Data})['uri']) !== undefined

相关问题