2016-07-08 2 views
15

Есть ли у кого-нибудь исчерпывающие примеры того, как использовать плагин родного файла Cordova в проекте Ionic 2/Angular 2?Примеры использования подключаемых файлов Ionic 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); 

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

+0

Вы можете уточнить, что вы пытаетесь выполнить? –

+0

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

+0

https://forum.ionicframework.com/t/file-datadirectory-static-in-ionic-native-can-not-be-found-by-typescript – andmar8

ответ

13

Ионный 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

Спасибо за ответ! Это было одним из моих сомнений. Откуда берутся этот объект кордовы? – Natanael

+0

Компилятор предоставит вам сообщение, но объект cordova доступен на вашем устройстве с использованием Ionic. – tyftler

+0

К сожалению, я получаю пустой экран и сообщение об ошибке в консоли. В сообщении говорится: Ошибка TypeScript: E: /Ionic2/ionic2-app/app/providers/file-provider/file-provider.ts (22,18): Ошибка TS2304: Не удается найти имя 'cordova'. – Natanael

6

Вот пример использования 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 КСН.

+0

thx для совместного использования. Ищете это! – TomG

Смежные вопросы