有没有人有关于如何在Ionic 2 / Angular 2项目中使用Cordova Native File Plugin的完整示例?
我安装了这个插件,但文档似乎对我来说没有多大意义,因为它是碎片化的,缺乏一个完整的例子,包括所有需要的导入。
例如,以下示例未显示LocalFileSystem或窗口等对象的来源。
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);
例如,我需要创建一个属性文件。首先,我需要检查应用程序沙箱存储区域中是否存在文件,如果不存在,我必须创建它。然后我必须打开文件写入数据并保存。我怎么能这样做?
答案 0 :(得分:13)
Ionic 2附带一个Cordova文件插件包装器: http://ionicframework.com/docs/v2/native/file/
您可以在原始插件的文档中找到必要的文件系统路径(例如cordova.file.applicationDirectory
):
https://github.com/apache/cordova-plugin-file#where-to-store-files。请注意,并非所有平台都支持相同的存储路径。
我甚至设法用它构建一个文件浏览器。像这样使用它:
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
}
);
答案 1 :(得分:10)
这是一个使用IonicNative为我正在处理的应用程序的示例 发送带有csv文件附件的电子邮件。
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);
});
}
}
在IOS上用离子3.7.0进行了测试。