Примеры использования файла Ionic 2
Есть ли у кого-нибудь исчерпывающие примеры того, как использовать собственный плагин файла Cordova в проекте Ionic 2/ Angular 2?
Я установил этот плагин, но документация, похоже, не имеет для меня большого смысла из-за того, что он фрагментирован и отсутствует полный пример, включая все необходимые импорты.
Например, следующий пример не показывает, откуда пришли объекты, такие как 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);
Например, мне нужно создать файл свойств. Сначала мне нужно проверить, существует ли файл в области хранения песочницы приложения, если он не существует, я должен его создать. Затем я должен открыть файл для записи данных и сохранить его. Как я могу это сделать?
Ответы
Ответ 1
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
}
);
Ответ 2
Вот пример использования 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 protected]',
attachments: [
this.file.dataDirectory + 'test.csv'
],
subject: 'subject',
body: 'body text...',
isHtml: true
};
this.emailComposer.open(email);
})
.catch((err) => {
console.error(err);
});
}
}
Это было протестировано с ионным 3,7,0 на IOS.