5

我正在尝试读取 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 模拟器中,我启动了 Chrome,google-chrome -–allow-file-access-from-filesAndroid 配置和清单具有插件集的所有权限。

当然我错过了一些东西,但知道这可能是什么吗?

问候。

4

2 回答 2

5

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

$.get('js/filename.ext');
于 2013-02-11T17:51:37.653 回答
1

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

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

于 2013-02-18T20:16:35.663 回答