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

时间:2017-01-04 02:46:00

标签: ios cordova ionic-framework ionic2

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

我正在使用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 个答案:

答案 0 :(得分:2)

我对此问题进行了一些深入研究。

首先,我在根文档目录(cordova.file.documentsDirectory)处执行了"NoCloud"。我发现文件系统中唯一可以看到的文件目录中的文件夹是"/www/assets/images/"

即使Wikitude成功地将图像放在名为File.readAsDataUrl()的此目录中的文件夹中,文件系统也无法查看,写入或读取它。

我设置wikitude将图像保存到“NoCloud”文件夹中,现在我可以成功使用<configuration> <appSettings> <add key="log4net.Internal.Debug" value="true"/> </appSettings> ... <system.diagnostics> <trace autoflush="true"> <listeners> <add name="textWriterTraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\tmp\log4net.txt" /> </listeners> </trace> </system.diagnostics> ... </configuration> 从“NoCloud”文件夹中获取base64图像数据。

希望这有助于某人。