Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ionic 2-(任何窗口均可)。resolveLocalFileSystemURL()引发错误_Javascript_File_Typescript_Ionic Framework_Window - Fatal编程技术网

Javascript Ionic 2-(任何窗口均可)。resolveLocalFileSystemURL()引发错误

Javascript Ionic 2-(任何窗口均可)。resolveLocalFileSystemURL()引发错误,javascript,file,typescript,ionic-framework,window,Javascript,File,Typescript,Ionic Framework,Window,我有一些使用相机的打字脚本代码: this.camera.getPicture(this.optionsGetCamera).then((imageURI) => { if (this.platform.is('ios')) { this.crop.crop(imageURI, { quality: 100 }).then(newPath => { console.log(newPath); (window as

我有一些使用相机的打字脚本代码:

this.camera.getPicture(this.optionsGetCamera).then((imageURI) => {
    if (this.platform.is('ios')) {
        this.crop.crop(imageURI, { quality: 100 }).then(newPath => {
            console.log(newPath);
            (window as any).resolveLocalFileSystemURL(newPath, function (fileEntry) {
                 this.readFile(fileEntry);
            });
        }).catch((error) => { ...
当我运行应用程序并使用此代码中使用的照相机功能时,控制台中出现错误(我在设备上运行时使用-lc参数查看日志):

console.error:error->
{“行”:58535,“列”:81,“源URL”:”http://192.168.1.131:8100/build/main.js“,”区域\符号\当前任务“:{”类型“:”微任务“,”状态“:”未计划“,”源“:”承诺“,”区域“:”角度“,”取消FN“:”空,“运行计数“:”0}}

第58535行是这样的:

window.resolveLocalFileSystemURL(新路径,函数(文件项){


这一行在由ionic on build创建的main.js文件中。我一直在试图理解
“source:“Promise.然后”
,因为它可能会指出问题(有承诺?或者不使用承诺?)。谢谢。

使用ionic native中的文件类意味着Typescript类 不要使用javascript任何类型 提及


cordova插件添加cordova插件文件
对我来说,我的代码

`getMedia(): Promise<any> {
    return new Promise((resolve, reject) => {
      Camera.getPicture(this.options).then((fileUri: any) => {
        alert('File URI: ' + JSON.stringify(fileUri));
        window.resolveLocalFileSystemURL('file://' + fileUri, (fileEntry) => {
          alert('Type: ' + (typeof fileEntry));
          fileEntry.file((file) => {
            alert('File: ' + (typeof file) + ', ' + JSON.stringify(file));
            const fileReader = new FileReader();
            fileReader.onloadend = (result: any) => {
              alert('File Reader Result: ' + JSON.stringify(result));
              let arrayBuffer = result.target.result;
              let blob = new Blob([new Uint8Array(arrayBuffer)], { type: 'video/mp4' });
              const name = 'mypic'
              this.upload(blob);
            };
            fileReader.onerror = (error: any) => {
              reject(error);
            };
            fileReader.readAsArrayBuffer(file);
          }, (error) => {
            alert('File Entry Error: ' + JSON.stringify(error));
          });
        }, (error) => {
          alert('Error resolving file: ' + JSON.stringify(error));
        });
      });
    });
  }`
`getMedia():承诺{
返回新承诺((解决、拒绝)=>{
Camera.getPicture(this.options).then((fileUri:any)=>{
警报('fileUri:'+JSON.stringify(fileUri));
resolveLocalFileSystemURL('file://'+fileUri,(fileEntry)=>{
警报('Type:'+(typeof fileEntry));
fileEntry.file((文件)=>{
警报('File:'+(typeof File)+','+JSON.stringify(File));
const fileReader=new fileReader();
fileReader.onloadend=(结果:任意)=>{
警报('文件读取器结果:'+JSON.stringify(结果));
让arrayBuffer=result.target.result;
设blob=newblob([newuint8array(arrayBuffer)],{type:'video/mp4'});
常量名称='mypic'
这个。上传(blob);
};
fileReader.onerror=(错误:any)=>{
拒绝(错误);
};
readAsArrayBuffer(文件);
},(错误)=>{
警报('文件输入错误:'+JSON.stringify(错误));
});
},(错误)=>{
警报('解析文件时出错:'+JSON.stringify(错误));
});
});
});
}`

谢谢您的回复!我该如何设置此设置以获得
file:///var/mobile/Containers/Data/Application/57AFE969-7A54-4066-BFF7-AFEB0C6BFEB6/
是我想列出文件的文件夹吗?实际上我想我刚刚找到了…我使用了
“文件://”
用于文件系统,而
var/mobile/Containers/Data/Application/57AFE969-7A54-4066-BFF7-AFEB0C6BFB6/
用于文件夹。首选使用环境文件夹,如
environment.SpecialFolder。
var/mobile/Containers/Data/Application/57AFE969-7A54-4066-BF‌​F7-AFEB0C6BFEB6/
?这是什么环境/特殊文件夹?
`getMedia(): Promise<any> {
    return new Promise((resolve, reject) => {
      Camera.getPicture(this.options).then((fileUri: any) => {
        alert('File URI: ' + JSON.stringify(fileUri));
        window.resolveLocalFileSystemURL('file://' + fileUri, (fileEntry) => {
          alert('Type: ' + (typeof fileEntry));
          fileEntry.file((file) => {
            alert('File: ' + (typeof file) + ', ' + JSON.stringify(file));
            const fileReader = new FileReader();
            fileReader.onloadend = (result: any) => {
              alert('File Reader Result: ' + JSON.stringify(result));
              let arrayBuffer = result.target.result;
              let blob = new Blob([new Uint8Array(arrayBuffer)], { type: 'video/mp4' });
              const name = 'mypic'
              this.upload(blob);
            };
            fileReader.onerror = (error: any) => {
              reject(error);
            };
            fileReader.readAsArrayBuffer(file);
          }, (error) => {
            alert('File Entry Error: ' + JSON.stringify(error));
          });
        }, (error) => {
          alert('Error resolving file: ' + JSON.stringify(error));
        });
      });
    });
  }`