Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Phonegap中读取本地文件_Javascript_Android_Cordova_File Io_Ripple - Fatal编程技术网

Javascript 在Phonegap中读取本地文件

Javascript 在Phonegap中读取本地文件,javascript,android,cordova,file-io,ripple,Javascript,Android,Cordova,File Io,Ripple,我正在尝试读取Phonegap中的本地文件以加载应用程序的语言字符串,但无法使其正常工作:( 代码非常简单: var pathToLocalFile = "/home/user/android/assets/www/js/"; var langCache = new FileReader(); langCache.onload = function(data){ col = JSON.parse(data); refreshAllStrings(); }; langCache.onerr

我正在尝试读取Phonegap中的本地文件以加载应用程序的语言字符串,但无法使其正常工作:(

代码非常简单:

var pathToLocalFile = "/home/user/android/assets/www/js/";
var langCache = new FileReader();
langCache.onload = function(data){
  col = JSON.parse(data);
  refreshAllStrings();
};
langCache.onerror = function(err){
  debug.error(err);
};
langCache.readAsText(pathToLocalFile+currentLang+'.json');
这段代码在Ripple emulator上不起作用,我用

var pathToLocalFile = "file:///android_asset/www/js/";
对于android,结果相同:

Uncaught TypeError: Object #<Console> has no method 'warning' cordova-2.4.0.js:2616
initRead cordova-2.4.0.js:2616
FileReader.readAsText cordova-2.4.0.js:2660    
loadLanguage
uncaughttypeerror:Object#没有方法“warning”cordova-2.4.0.js:2616
initRead cordova-2.4.0.js:2616
FileReader.readAsText cordova-2.4.0.js:2660
加载语言
在Ripple emulator中,我使用
google Chrome-–允许从文件访问文件
,启动了Chrome,Android配置和清单拥有所有权限和插件集

我当然错过了一些东西,但你知道这会是什么吗


注意。

如果文件位于应用程序的www文件夹下,则不需要添加“/home/”或“file://”。即使应用程序中捆绑了该文件,您也应该能够使用“AJAX”获取加载内容

$.get('js/filename.ext');

您看到的错误实际上是cordova-2.4.0.js调用一个不存在的“warning”方法的结果。它应该是console.warn。它试图警告您,现在不推荐对readAsText方法使用字符串,而应该使用文件引用


应该发生的是console.warn“不推荐将字符串参数与FileReader.readAs函数一起使用。”

对不起,为了更好地回答您的问题,我只需要澄清一件事。您是否正在尝试读取包含在Android应用程序的www目录中的JS文件?是的,没错,这正是我想要的,一种动态加载应用程序包中文件的方法(我认为FileRead可以工作,我愿意接受任何其他建议)是的,FileReader无法访问随应用程序打包的文件。根据@codemonkey answer,最好通过AJAX读取这些文件。这在android emulator上有效,但在ripple上无效(如果我能让它在ripple上工作,那就太好了,在android上进行更改、编译和运行emulator的速度非常慢:()修正了它,改变了ripple works的跨域策略:如何写入本地文件?