2012-04-06 46 views
1

我想打開SD卡並使用Phonegap在Android上載文件。以下是我將SD卡內容附加到HTML中的代碼,但沒有顯示任何內容。我正在使用cordova.jsjquery1.7.1.js。下面是我的代碼:試圖打開使用HTML,Javascript和Phonegap的Android SD卡

我的javascript:

function onDeviceReady() { 
    getFileSystem(); 
} 

function getFileSystem() { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, 
     function(fileSystem) { // success get file system 
      root = fileSystem.root; 
      listDir(root); 
     }, 
     function(evt) { // error get file system 
      console.log("File System Error: "+evt.target.error.code); 
     } 
    ); 
} 

function listDir(directoryEntry) { 
    if (!directoryEntry.isDirectory) 
     console.log('listDir incorrect type'); 

    $.mobile.showPageLoadingMsg(); // show loading message 

    currentDir = directoryEntry; // set current directory 
    directoryEntry.getParent(
     function(par) { // success get parent 
      parentDir = par; // set parent directory 
      if ((parentDir.name == 'sdcard' && currentDir.name != 'sdcard') || parentDir.name != 'sdcard') 
       $('#backBtn').show(); 
     }, 
     function(error) { // error get parent 
      console.log('Get parent error: ' + error.code); 
     } 
    ); 

    var directoryReader = directoryEntry.createReader(); 
    directoryReader.readEntries(
     function(entries) { 
      var dirContent = $('#dirContent'); 
      dirContent.empty(); 

      var dirArr = new Array(); 
      var fileArr = new Array(); 
      for (var i=0; i < entries.length; ++i) { // sort entries 
       var entry = entries[i]; 
       if (entry.isDirectory && entry.name[0] != '.') 
        dirArr.push(entry); 
       else if (entry.isFile && entry.name[0] != '.') 
        fileArr.push(entry); 
      } 

      var sortedArr = dirArr.concat(fileArr); // sorted entries 
      var uiBlock = ['a','b','c','d']; 

      for (var i=0; i < sortedArr.length; ++i) { // show directories 
       var entry = sortedArr[i]; 
       var blockLetter = uiBlock[i%4]; 
       //console.log(entry.name); 
       if (entry.isDirectory) 
        dirContent.append('<div class="ui-block-' + blockLetter + '"><div class="folder"><p>' + entry.name + '</p></div></div>'); 
       else if (entry.isFile) 
        dirContent.append('<div class="ui-block-' + blockLetter + '"><div class="file"><p>' + entry.name + '</p></div></div>'); 
      } 
      $.mobile.hidePageLoadingMsg(); // hide loading message 
     }, 
     function(error) { 
      console.log('listDir readEntries error: ' + error.code); 
     } 
    ); 
} 
+0

logcat中的任何錯誤? – 2012-04-06 17:26:14

+0

沒有在logcat – user1051599 2012-04-07 06:23:51

回答

1

你參加在科爾多瓦API文檔看一下嗎?我試過這個示例代碼,它工作得很好。 Link to API and the sample code

+0

我試過也SD卡沒有打開。我不需要訪問文件我需要訪問SD卡和選擇文件我自己上傳... – user1051599 2012-04-06 15:10:40

+0

這可能是你的東西? http://stackoverflow.com/questions/9940667/how-to-open-sdcard-of-android-using-phonegap – Jack 2012-04-06 15:20:02

+0

這也是我..不工作G ...我試過 – user1051599 2012-04-06 15:27:48