2013-06-11 36 views
1

我正在創建一個移動應用程序,並且我已經列舉了一個關於黑莓手機的問題(我的大多數用戶正在使用黑莓手機)。我正在使用phonegap api。如何保存非常長的字符串?

問題是,我正在下載一個字符串,我將其保存在手機瀏覽器的localstorage中,當字符串超過x百萬個字符時localstorage不再能夠存儲該字符串。我需要至少比本地存儲提供的空間多10倍的空間。

我已經嘗試將字符串保存爲文本文件,並遵循phonegap提供的文檔,但無法管理讀取或寫入文件,所以我放棄了(我認爲這是我做到這一點的唯一方法) 。也有看着壓縮的字符串,但就像我說過,我需要超過10倍的空間,我沒有看到如何10個字符串可以轉換爲1個字符串。

代碼文件讀寫器(問題是,它從來沒有發現或創建文件,GETFILE()來讀取或寫入失敗,並返回錯誤代碼1 - FILE_NOT_FOUND):

function OnLoadSignInCheck(){ 

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

} 

function onDeviceReady() { 
alert("2"); 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
} 

function gotFS(fileSystem) { 
alert("3"); 
    fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail); 
} 

function gotFileEntry(fileEntry) { 
alert("4"); 
    fileEntry.createWriter(gotFileWriter, fail); 
} 

function gotFileWriter(writer) { 
alert("5"); 
    writer.onwriteend = function(evt) { 
     alert("contents of file now 'some sample text'"); 
     writer.truncate(11); 
     writer.onwriteend = function(evt) { 
      alert("contents of file now 'some sample'"); 
      writer.seek(4); 
      writer.write(" different text"); 
      writer.onwriteend = function(evt){ 
       alert("contents of file now 'some different text'"); 
      } 
     }; 
    }; 
    writer.write("some sample text"); 
    reader(); 
} 

function fail(error) { 
    alert(error.code); 
} 

function reader() { 
alert("1"); 
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFSr, fail); 
} 

function gotFSr(fileSystem) { 
    alert("2"); 
    fileSystem.root.getFile("readme.txt", null, gotFileEntryr, fails); 
} 

function gotFileEntryr(fileEntry) { 
    alert("3"); 
    fileEntry.file(gotFiler, fails); 
} 

function gotFiler(file){ 
    alert("4"); 
    readDataUrl(file); 
    readAsText(file); 
} 

function readDataUrl(file) { 
    var reader = new FileReader(); 
    reader.onloadend = function(evt) { 
     alert("Read as data URL"); 
     alert(evt.target.result); 
    }; 
    reader.readAsDataURL(file); 
} 

function readAsText(file) { 
    var reader = new FileReader(); 
    reader.onloadend = function(evt) { 
     alert("Read as text"); 
     alert(evt.target.result); 
    }; 
    reader.readAsText(file); 
} 

function fails(evt) { 
    alert(evt.target.error.code); 
} 
+0

你可以發表你的一些代碼嘗試寫它作爲文件? –

+0

我已經添加了代碼 - getfile()後失敗 – windows95

回答

0

解決了文件路徑應格式爲「file:///store/home/user/documents/readme.txt」。然而,這帶我到我的下一個問題 - 我如何讓用戶選擇一個文件路徑,因爲它會爲每個用戶或至少bb,iphone,android用戶不同?

相關問題