我正在尝试读取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配置和清单具有所有权限和插件设置。
当然我错过了什么,但不知道这可能是什么?
问候。
答案 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函数的字符串参数。”