在Phonegap中读取本地文件

时间:2013-02-11 13:21:32

标签: 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.onerror = function(err){
  debug.error(err);
};
langCache.readAsText(pathToLocalFile+currentLang+'.json');

此代码在Ripple仿真器上不起作用,我将其替换为

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

在Ripple模拟器中,我使用google-chrome -–allow-file-access-from-files启动了Chrome,Android配置和清单具有所有权限和插件设置。

当然我错过了什么,但不知道这可能是什么?

问候。

2 个答案:

答案 0 :(得分:5)

如果文件位于应用的www文件夹下,则无需添加“/ home / ..”或“file:///”。您应该能够使用“AJAX”提取加载内容,即使它已捆绑在应用程序中。

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

答案 1 :(得分:1)

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

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