2011-12-05 3 views

答えて

11

@ $$でも少しでも痛みがあります。このコードで起動します。私は、IDEの外ですべてのこの例のコードを書いている

document.addEventListener("deviceready", onDeviceReady, false); 

// PhoneGap is ready 
// 
function onDeviceReady() { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail); 
} 

function onFileSystemSuccess(fileSystem) { 
    fileSystem.root.getDirectory("Music", {create: false, exclusive: false}, getDirSuccess, fail); 
} 

function getDirSuccess(dirEntry) { 
    // Get a directory reader 
    var directoryReader = dirEntry.createReader(); 

    // Get a list of all the entries in the directory 
    directoryReader.readEntries(readerSuccess,fail); 
} 

function readerSuccess(entries) { 
    var i; 
    for (i=0; i<entries.length; i++) { 
     // Assuming everything in the Music directory is an mp3, go nuts 
     // otherwise check entries[i].name to see if it ends with .mp3 
    } 
} 

ので、そこのバグかもしれないが、それはあなたが軌道に乗る必要があります。

+0

乾杯それを試すことができます... – Dancer

+0

ことかもしれませんfileSystem.rootの下にMusicフォルダがないためです。あなたが正しいルートディレクトリにいて、Musicフォルダがあることを確認してください。フォルダを使わずにルートディレクトリにアクセスすることもできます。 "彼のコードはiphone(ios)で私のために働いていました。 – c0d3Junk13

2

Paul、fail()関数を追加しましたか?これはSimonのサンプルコードで必要となります。 api docs exampleがあります

function fail(evt) { 
    console.log(evt.target.error.code); 
} 
2

あなただけの概念実証を望んでいた場合fileSystem.rootはすでにのDirEntryあるので、あなたはまた、サイモンのコード内の1つのステップを救うことができる(そして、それはあなたが使用することの潜在的なバグのステップを節約します「音楽」などのディレクトリ名):

function onFileSystemSuccess(fileSystem) { 
    var directoryReader = fileSystem.root.createReader(); 

    // Get a list of all the entries in the directory 
    directoryReader.readEntries(readerSuccess,fail); 
} 

function readerSuccess(entries) { 
    var i;....... 

私のために働く。

しかし、私が得るのは、アプリケーションのルートディレクトリの内容です。明らかに、私のアプリはbe.qan.blaActivityと呼ばれています。私はfileSystem.root.nameのために "be.qan"とfileSystem.root.pathは未定義です。したがって、私の質問はここにあります:もし私がこの座席に入っているのであれば、このサンドボックスから脱出することができますか?また、sd_cardディレクトリやファイルシステムの他の部分にアクセスできますか?(iOSはまだ外部ストレージ)?

readerSuccessのファイル名で取得しているのは、「データベース」、「app_database」、「キャッシュ」、「lib」などの名前で、Astro FileManagerで検索すると表示されません私は彼らがCordovaがアプリケーション用に作成している仮想ファイルシステムの一部であると強く想定しています。おそらく私はまだ多くの人がいなくて、私はまっすぐに私を置くことができるよりも知識のある人がいますが、それは私が今まで推測しているものです。

+1

今私自身の答えでは、デバイスのfileSystem全体をブラウズする限り、 'window.requestFileSystem'の代わりに' window.resolveLocalFileSystemURI() 'を試してみました。 'window.resolveLocalFileSystemURI(" file:/// ")、function(dirEntry){ var directoryReader = dirEntry.createReader();を使用します。 directoryReader.readEntries(readerSuccess、fail); }、失敗); 'ルートディレクトリにまっすぐアクセスでき、そこから取得できます。 – yogibimbi

0

こんにちは、私はこのコードを使用して、それが私の作品...それは文句を言わない私のためonFileSystemSuccess(ファイルシステム)機能を過ぎて行くが、あなたの助けサイモンため

$('#recordingList').on('pagecreate', function(event) { 
    generateRecordingList(); 
}); 

function generateRecordingList(){ 
    //request for the file system 
    window.resolveLocalFileSystemURI("file:///sdcard/rem", onFileSystemSuccess, onError); 
} 

function onFileSystemSuccess(fileSystem){ 
    alert("FileSystem success : " + fileSystem.name); 

} 

function onError(error){ 
    alert(error.target.error.code); 
} 
関連する問題