【发布时间】:2013-02-11 13:21:32
【问题描述】:
我正在尝试读取 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 配置和清单具有所有权限和插件集。
我当然遗漏了一些东西,但你知道这可能是什么吗?
问候。
【问题讨论】:
-
对不起,为了更好地回答你,我只需要澄清一件事。您是否尝试读取包含在 Android 应用的 www 目录中的 JS 文件?
-
是的,这正是我想要的,一种动态加载应用程序包中文件的方法(我认为 FileRead 可以工作,我愿意接受任何其他建议)
-
是的,FileReader 无权访问应用程序打包的文件。根据@codemonkey 的回答,最好通过 AJAX 读取这些文件。
标签: javascript android cordova file-io ripple