Подтвердить что ты не робот

Примеры использования файла 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);

Например, мне нужно создать файл свойств. Сначала мне нужно проверить, существует ли файл в области хранения песочницы приложения, если он не существует, я должен его создать. Затем я должен открыть файл для записи данных и сохранить его. Как я могу это сделать?

4b9b3361

Ответ 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.