Tôi đang cố gắng để đọc một tập tin địa phương trong PhoneGap để nạp chuỗi ngôn ngữ cho ứng dụng và tôi không thể làm cho nó hoạt :(đọc tập tin địa phương trong PhoneGap
Mã này khá đơn giản:
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');
mã này không hoạt động trên các giả lập Ripple và tôi thay thế nó với
var pathToLocalFile = "file:///android_asset/www/js/";
trong trường hợp của android, với kết quả tương tự:
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
Trong trình giả lập Ripple, tôi khởi động Chrome với google-chrome -–allow-file-access-from-files
và cấu hình và tệp kê khai Android có tất cả quyền và plugin được đặt.
Tất nhiên tôi thiếu điều gì đó, nhưng bất kỳ ý tưởng nào về điều này có thể là gì?
Trân trọng.
Xin lỗi, để trả lời bạn tốt hơn, tôi chỉ cần làm rõ một điều. Bạn đang cố gắng đọc một tệp JS mà bạn đang đưa vào trong thư mục www của ứng dụng Android của bạn? –
yep, chính xác, đó là những gì tôi muốn, một cách để tự động tải tệp trong gói ứng dụng (tôi cho rằng FileRead sẽ hoạt động, tôi đang mở cho bất kỳ đề xuất nào khác) –
Vâng, FileReader không có quyền truy cập vào các tệp được đóng gói cùng với ứng dụng. Đọc những tập tin đó được thực hiện tốt nhất thông qua AJAX theo câu trả lời @codemonkey. –