2016-07-08 4 views
15

Ionic 2/Angular 2プロジェクトでCordovaネイティブファイルプラグインを使用する方法の完全な例はありますか?Ionic 2ファイルプラグインの使用例

私はこのプラグインをインストールしましたが、フラグメント化されており、必要なすべてのインポートを含む完全な例が不足しているため、ドキュメントは私にとって意味をなさないようです。

たとえば、次の例では、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); 

たとえば、プロパティファイルを作成する必要があります。まず、アプリケーションサンドボックスのストレージエリアにファイルが存在するかどうかを確認する必要があります。存在しない場合は作成する必要があります。それから、ファイル書き込みデータを開いて保存する必要があります。どうすればいい?

+0

あなたは達成しようとしていることに関してより具体的になることができますか? –

+0

たとえば、プロパティファイルを作成する必要があります。まず、アプリケーションサンドボックスのストレージエリアにファイルが存在するかどうかを確認する必要があります。存在しない場合は作成する必要があります。それから、ファイル書き込みデータを開いて保存する必要があります。 – Natanael

+0

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

答えて

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

返信いただきありがとうございます!それは私の疑問の一つでした。このコードバオブジェクトはどこから来たのですか? – Natanael

+0

コンパイラはメッセージを表示しますが、コードバオブジェクトはIonicを使用してデバイス上で使用できます。 – tyftler

+0

残念ながら、空白の画面が表示され、コンソールにエラーメッセージが表示されます。エラーメッセージ:TypeScriptエラー:E:/Ionic2/ionic2-app/app/providers/file-provider/file-provider.ts(22,18):エラーTS2304:名前 'cordova'が見つかりません。 – Natanael

6

は、ここで私は、私はcsvファイルを添付して電子メールを送信する を配置したい場所に取り組んでいますアプリをIonicNativeを使用した例です。

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); 
    }); 

} 
} 

これは、IOS上のイオン3.7.0でテストされました。

+0

thxを共有してください。これを探して! – TomG

関連する問題