首页 文章

Ionic Native File.readAsDataURL 给出错误代码:1 条消息:NOT_FOUND_ERR

提问于
浏览
3

我试图在Ionic Native中检索保存到 iPhone 本地存储的图片的数据 URL,在真实设备上运行,而不是在模拟器上运行。

我在用File.readAsDataURL

我使用 X-code 来查看手机的本地存储空间,我可以在这个位置看到图像。

/var/mobile/Containers/Data/Application/ *我的 APP ID * /Documents/www/assets/images/image.png

这是我的代码:

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { File } from 'ionic-native';

declare var cordova: any;

@Component({
  selector: 'get-picture',
  templateUrl: 'get-picutre.html'
})

export class GetPictureComponent {
    fs:string = cordova.file.documentsDirectory;

    constructor(
        public platform: Platform
    ) {}

    ionViewDidEnter() {
         this.platform.ready().then(() => {
            console.log("FileSystem", this.fs); //logs FileSystem file:///var/mobile/Containers/Data/Application/* My APP ID */Documents/

            File.readAsDataURL(this.fs, 'www/assets/images/image.png')
              .then((imgData) => console.log('Image Data', imgData))
              .catch((error) => console.log('error', error)); //Logs error {"code":1,"message":"NOT_FOUND_ERR"}

          }); 
    }

}

我尝试过基本相同的东西

window.resolveLocalFileSystemURL(file:///var/mobile/Containers/Data/Application/* My APP ID */Documents/www/assets/images/image.png

我再次收到错误代码 1。

我使用以下首选项更新了我的 config.xml 文件:

<preference name="iosExtraFilesystems" value="library,library-nosync,documents,documents-nosync,cache,bundle,root" />
  <preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,root" />

有谁知道为什么这不起作用?

离子版 - 2.1.14

提前致谢!

1 回答

  • 2

    我对这个问题做了一些深入研究。

    首先,我在我的根文档目录(cordova.file.documentsDirectory)上做了File.listDir()。我发现文件系统中唯一可以看到的文件目录中的文件夹是"NoCloud"

    尽管 Wikitude 成功地将图像放在名为"/www/assets/images/"的此目录中的文件夹中,但文件系统无法查看,写入或读取它。

    我设置 wikitude 将图像保存到“NoCloud”文件夹中,现在我可以成功使用File.readAsDataUrl()从“NoCloud”文件夹中获取 base64 图像数据。

    希望这有助于某人。

相关问题