在 phonegap 中加载存储在文本文件中的数组
Posted
技术标签:
【中文标题】在 phonegap 中加载存储在文本文件中的数组【英文标题】:Loading an array stored in a text file in phonegap 【发布时间】:2014-10-12 12:05:25 【问题描述】:不使用 jquery mobile 或其他框架将二维字符串数据从 /www 字典中的文本文件加载到 phonegap 中的 javascript 数组中的最有效方法是什么?
如果重要,也请随意选择哪种格式的文本文件最好。
我试过了:
var request = new XMLHttpRequest();
request.open("GET", "/android_asset/data.txt");
request.onreadystatechange = function() //Call a function when the state changes.
console.log("* data.txt1 " );
if (request.readyState == 4)
console.log("*" + request.responseText + "* data.txt2" );
;
request.send();
它给了我错误:
[INFO:CONSOLE(0)] "XMLHttpRequest 无法加载 file:///android_asset/data.txt。跨源请求仅支持 HTTP。",来源:file:///android_asset/www/index。 html (0)
【问题讨论】:
您可以使用本机浏览器/Webview(如果是phonegap)XMLHttpRequest
在参数中指定文件的路径。然后根据是 JSON、XML、CSV 还是您期望的任何格式来解析加载的数据。
【参考方案1】:
既然您使用的是cordova,为什么不使用提供的本机文件系统支持。下面的代码应该适用于 ios 和 android。
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs)
fs.root.getFile("../myapp/www/content/" + "words.txt", null, function(fe)
fe.file(function(f)
var reader = new FileReader();
reader.onloadend = function(evt)
// do sth with the reader.result data
console.log(reader.result);
reader.readAsText(f);
, fail);
, fail);
, fail);
fail 只是上面代码中处理失败情况的回调。
【讨论】:
在 Android 上测试时出现错误:“Uncaught ReferenceError: LocalFileSystem is not defined” 你添加文件插件了吗? Cordova 文件插件:github.com/apache/cordova-plugin-file/blob/master/doc/index.md 在我的例子中,路径是www/some file name
。我不需要输入应用名称以上是关于在 phonegap 中加载存储在文本文件中的数组的主要内容,如果未能解决你的问题,请参考以下文章
从一个巨大的(> 200MB)数组文件中加载随机对象而不加载整个数组
Phonegap混合iOS应用程序中加载的远程网页可以将数据保存到iOS文件系统吗?