我遇到一个有趣的问题:我正在开发一个离子应用程序,用于cordova-plugin-file存储图像。生成的路径(格式为 file:///... 的 URI)与更多信息一起存储在 SQLite DB 中。当我安装该应用程序并使用它时,一切都很完美。但是,如果我更新(或重新安装)应用程序,则不再找到旧图像,而新添加的图像则可以完美工作。
我首先怀疑图像文件在更新时被删除,但我检查了目录的内容,文件仍然存在。(仅供参考:我用来file.dataDirectory/scans/放置我的文件)。
然后我想也许我可以解决加载到img src加载了 的 base64 blob中的问题cordova.file.readAsUrl(),但 cordova.file 也找不到该文件(我坚持认为,文件在那里,我用 XCode 检查过)。
因此,我进一步检查cordova.file,它只找到上次应用程序安装后添加的文件,但较旧的文件仍然存在于目录中。
这是我的代码:
private getImgSrcFromDocument(doc: Document): any {
const uri = doc.fileName;
const src = this.webView.convertFileSrc(uri);
const sanitized = this.sanitizer.bypassSecurityTrustUrl(src);
console.log({uri, src, sanitized});
return sanitized;
}
Run Code Online (Sandbox Code Playgroud)
<img class="document_thumbnail" [src]="getImgSrcFromDocument(doc)">
Run Code Online (Sandbox Code Playgroud)
我已经检查过了,但不是我的情况。
顺便说一下,同样的代码在 Android 上运行得很好。
知道可能是什么问题吗?提前致谢!