我正在創建一個移動應用程序,並且我已經列舉了一個關於黑莓手機的問題(我的大多數用戶正在使用黑莓手機)。我正在使用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);
}
你可以發表你的一些代碼嘗試寫它作爲文件? –
我已經添加了代碼 - getfile()後失敗 – windows95