我正在创建一个移动应用程序,我在黑莓手机上遇到了问题(我的大多数用户都在使用黑莓手机)。我正在使用phonegap api。
问题是我正在下载一个字符串,我在手机的浏览器中保存在本地存储中,当字符串超过x百万字符时,localstorage不再能够存储字符串。我需要至少比localstorage提供的空间多10倍。
我已经尝试将字符串保存为文本文件而是跟随phonegap提供的文档,但无法读取或写入文件,所以我放弃了(我认为这是我这样做的唯一方法)。也考虑过压缩字符串,但就像我说之前我需要超过10倍的空间,我不知道如何将10个char字符串转换为1个char字符串。
文件阅读器和编写器的代码(问题是它从未找到或创建文件,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)
解决文件路径的格式应为“file:///store/home/user/documents/readme.txt”。然而,这让我想到了我的下一个问题 - 如何让用户选择文件路径,因为它对每个用户或至少对于bb,iphone,android用户来说会有所不同?