android - ionic 3 native : File : {code: 5, 消息: "ENCODING_ERR"}

标签 android typescript ionic-framework ionic3

我正在使用 checkFile function from File API plugin在 Ionic 3 中检查文件是否存在于本地。 Promise 拒绝并出现以下错误:

FileError {code: 5, message: "ENCODING_ERR"}

从我在 Mozilla Docs of the File API 上看到的,问题是“URL 格式不正确”。但是,我看不出 URL 是如何格式错误的。这是显示我如何调用函数的相关代码以及所涉及变量的实际值(baseDirectory 的值设置为 file:///data/user/0/ch .protectator.fehpedia/文件/) :

let baseDirectory = this.file.dataDirectory;
let fileToCheck = "File:Icon Portrait Abel.png";

let promise = this.file.checkFile(this.file.dataDirectory, fileName).then(bool => {
    // Things
}, reason => {
    console.error(reason);
});

这就是失败的 Promise。这种情况的奇怪之处在于,我实际上稍后在代码中尝试显示该图像,而忽略了 File.checkFile 是否已找到它,并且图像显示

在 HTML 模板中,我稍后使用:

<img [src]="imgUrl">

其中 imgUrl 设置使用:

this.imgUrl = this.file.dataDirectory + '/' + "File:Icon Portrait Abel.png";

所以图像存在并在 WebView 调用时正确显示,但 Native File 插件告诉我 URL 格式错误,即使对我来说它似乎是完全相同的 URL。这就是我被困的地方,我不知道要更改什么才能使代码正常工作。 checkFile 是否应该以不同的方式使用?此外,更准确的失败原因会有所帮助,但我得到的只是 ENCODING_ERR,我不知道 URL 的实际部分似乎格式错误。

最佳答案

在查看了类似的案例后,我没有找到解决方案,也没有找到关于这个特定案例的文档。但是在尝试不同的值时,我发现了导致此错误的原因::。是的,冒号。文件名中的那个。

虽然我仍然没有解释为什么 : 导致 native File 插件失败而不是 web View ,删除 : 文件名有效地允许 File 在不引发 ENCODING_ERR 的情况下查看它。虽然这不是最佳解决方案,但此解决方法很有效。

关于android - ionic 3 native : File : {code: 5, 消息: "ENCODING_ERR"},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45910519/

相关文章:

javascript - Angular 2 : ngFor loop undefined value

android - 在当前 WebView 页面中打开 PDF

java - YouTube视频仅在屏幕上播放音频,而在WebView Android中旋转

java - Android:从应用程序中的多个 Activity 访问单个数据库?

typescript - 在 typescript 中在客户端和服务器之间共享代码

html - 如何删除垫选项填充

html - 如何从html div元素获取高度?

ios - ionic Facebook 身份验证 - iOS - 应用程序未设置 : Still in Dev Mode

ionic-framework - 检测 Ionic App 中的方向变化

android - AsyncTask 不是通用的?