File 离子2文件插件使用示例

File 离子2文件插件使用示例,file,typescript,angular,cordova-plugins,ionic2,File,Typescript,Angular,Cordova Plugins,Ionic2,有没有人有关于如何在Ionic 2/Angular 2项目中使用Cordova原生文件插件的完整示例 我安装了这个插件,但文档对我来说似乎没有多大意义,因为它是零碎的,缺乏完整的示例,包括所有需要的导入 例如,下面的示例没有显示LocalFileSystem或window等对象的来源 window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) { console.log('file system open:

有没有人有关于如何在Ionic 2/Angular 2项目中使用Cordova原生文件插件的完整示例

我安装了这个插件,但文档对我来说似乎没有多大意义,因为它是零碎的,缺乏完整的示例,包括所有需要的导入

例如,下面的示例没有显示LocalFileSystem或window等对象的来源

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {

    console.log('file system open: ' + fs.name);
    fs.root.getFile("newPersistentFile.txt", { create: true, exclusive: false }, function (fileEntry) {

        console.log("fileEntry is file?" + fileEntry.isFile.toString());
        // fileEntry.name == 'someFile.txt'
        // fileEntry.fullPath == '/someFile.txt'
        writeFile(fileEntry, null);

    }, onErrorCreateFile);

}, onErrorLoadFs);

例如,我需要装箱一个属性文件。首先,我需要检查应用程序沙盒存储区域中是否存在文件,如果不存在,我必须创建它。然后我必须打开文件写入数据并保存它。我该怎么做呢?

爱奥尼亚2附带了Cordova文件插件包装:

必要的文件系统路径(例如,
cordova.file.applicationDirectory
)可以在原始插件的文档中找到: . 请注意,并非所有平台都支持相同的存储路径

我甚至用它构建了一个文件浏览器。像这样使用它:

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

...

File.listDir(cordova.file.applicationDirectory, 'mySubFolder/mySubSubFolder').then(
  (files) => {
    // do something
  }
).catch(
  (err) => {
    // do something
  }
);

下面是一个使用IonicNative的示例,我正在开发我想要的应用程序 发送带有csv文件附件的电子邮件。


这是在IOS上用ionic 3.7.0测试的。

您能更具体地说明您要完成的任务吗?例如,我需要打包一个属性文件。首先,我需要检查应用程序沙盒存储区域中是否存在文件,如果不存在,我必须创建它。然后我必须打开文件写入数据并保存。谢谢回复!这是我的疑问之一。此cordova对象来自何处?编译器会给您一条消息,但cordova对象可在您的设备上使用Ionic。不幸的是,我在控制台中看到一个空白屏幕和一条错误消息。消息显示:TypeScript错误:E:/Ionic2/Ionic2 app/app/providers/file provider/file provider.ts(22,18):错误TS2304:找不到名称“cordova”。很遗憾,您无法在浏览器中测试此项,它必须在设备/仿真器上。您还可以在导入后使用
declare var cordova:any
来安抚编译器。如何写入文件?我找不到任何方法来执行此操作。当我使用dataDirectory时,它对我不起作用,但当我使用dataDirectory时,它起作用externalDirectory@Amr.Ayoub也许API中发生了一些变化。谢谢你的评论。这很有效。但仅当您从根目录写入/读取文件时。我无法创建任何文件夹。在最坏的情况下,我想创建一个深入的路径。但是怎么做呢?文档中的示例不起作用。@PhilipFrack是否有办法在
此.file.applicationDirectory
中写入文件?我在windows 10 uwp应用程序中也尝试了同样的方法,打开了带有正文和主题的电子邮件,但附件不起作用,知道吗?
import {EmailComposer} from '@ionic-native/email-composer';
import {File} from '@ionic-native/file';

class MyComponent {
 constructor(private emailComposer: EmailComposer, private file: File) {

 }
 testEmail() {
 this.file.writeFile(this.file.dataDirectory, 'test.csv', 'hello,world,', {replace: true})
     .then(() => {      
       let email = {
         to: 'email@email',
         attachments: [
           this.file.dataDirectory + 'test.csv'
         ],

         subject: 'subject',
         body: 'body text...',
         isHtml: true
       };
       this.emailComposer.open(email);

     })
     .catch((err) => {
       console.error(err);
     });

 }
}