2011-11-30 10 views
13

foo.htmlというファイルが、私の資産/ wwwディレクトリ(私のindex.htmlの隣)に座っています(かなり快適です)。assets/wwwディレクトリからアクセスするファイル

私はそのファイルをデバイスの別の場所にコピーしたいと思います。私の最初のアプローチwindow.resolveLocalFileSystemURI("foo.html", cool(), notCool());は機能しません。 wwwのようなプレフィックスも/それはありません。

実際にPhonegap経由でファイルにアクセスできるかどうかは興味深いことです。私は確信していないので、可能であれば、assetsディレクトリ内のファイルに対してFileEntryを取得する方法をコードスニペットで見たいと思っています。

編集: [OK]を、今私たちは、この

window.resolveLocalFileSystemURI("file:///android_asset", 
    function(entry){ 
    console.log(entry.fullPath);}, 
    function(evt){ 
    console.log(evt.code);} 
); 

のような電話を持っているが、我々は(v1.0のでcode: undefined(PhoneGapの1.2以降)とcode: 1でエラーを取得したコード1 =ファイル?!)

答えて

10

が見つかりませんあなたはこの方法でファイルにアクセスすることができる必要があります:

あなたはその後、 File API使用することができます
window.resolveLocalFileSystemURI("file:///android_asset/www/foo.html", onResolveSuccess, onFail); 

- FileEntrを実際にアクションを実行するには、y.copyToまたはFileEntry.moveToを使用します。注 - 実際にassset/wwwフォルダに書き込むことはできず、SDカードにのみ書き込むことができます。

希望これは

+1

はそれがとても素敵に見えますが、それは働いていない:Cは常に失敗-メソッドを呼び出します。私がscript.jsファイルにアクセスしようとしても、私のダミーhtmlの代わりに。また、ディレクトリをダブルチェックしました。エラーイベントには、コード:未定義の1つのフィールドしかありません。 – yoshi

+1

あなたのlogcat出力に何か? – Leon

+0

エラーイベントを記録すると、1つのフィールドしか表示されません。 'code:undefined' – yoshi

1

レオンを助けます - 最初の部分が真である「あなたが実際にはSDカードに、assset/WWWのフォルダに書き込むことができない」、あなたは資産/ WWWのパスに書き込むことはできません。しかし、アプリケーションがデバイスにインストールされている場合は、ファイルを作成して書き込むことができ、アンドロイドのルートに作成されます。アプリがSDカードにインストールされている場合、そのファイルはSDカードのルートに作成されます。作成されたファイルは、アプリケーションのユーザーデータを消去するときに削除または変更されず、アプリケーションの削除時に削除されません。

14

あなたがしたいことはできません。 assetsディレクトリのファイルは、技術的にはファイルシステム上に存在しないため、File API経由でアクセスすることはできません。つまり、window.resolveLocalFileSystemURI()を呼び出すと、FileEntryは返されません。

XHRを介してこれらのファイルにアクセスすることをお勧めします。テキストベースの場合は、XHRの結果をFileWriterを使用してファイルシステムに書き込むことができます。 XHRを使ってassetsディレクトリからファイルを取得する方法を示すブログ記事を書いた。

http://simonmacdonald.blogspot.com/2011/12/on-fourth-day-of-phonegapping-creating.html

+0

私は現時点ではコードを持っていないが、私はかなり私は受け入れられた答えで行う必要が達成した。あなたはSimonに会います。私はphonegapグループの多くの投稿を読んでいます:) – yoshi

+0

@yoshi、申し訳ありませんが、Leonの答えを使ってアセットファイルにアクセスできましたか?あるいはそれらの道を手に入れることさえできますか?私はそれを働かせようとしていたが、私はできなかった! – lao

+0

lucaskoala - それを働かせることができましたか?私は運がない(と私はサイモンが正しいと思っているそれは不可能です)。こちらをご覧ください:http://stackoverflow.com/questions/22948430 –

関連する問題