2013-02-11 20 views
5

मैं आवेदन के लिए भाषा का तार लोड करने के लिए Phonegap में एक स्थानीय फ़ाइल पढ़ने की कोशिश कर रहा हूँ में स्थानीय फ़ाइल पढ़ें और मैं यह काम :(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'); 

इस कोड लहर एमुलेटर पर काम नहीं करता और मैं एंड्रॉयड के मामले में

var pathToLocalFile = "file:///android_asset/www/js/"; 

से बदल दिया, एक ही परिणाम के साथ:

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 

लहर एमुलेटर में, मैं google-chrome -–allow-file-access-from-files साथ क्रोम शुरू कर दिया और एंड्रॉयड config और प्रकट करने के लिए सभी अनुमतियों और प्लग इन सेट है।

बेशक

मैं कुछ याद कर रहा हूँ, लेकिन किसी भी विचार यह हो सकता है क्या?

सम्मान।

+0

क्षमा करें, बेहतर आप जवाब देने के लिए मैं सिर्फ एक बात स्पष्ट करने के लिए की जरूरत है। क्या आप एक जेएस फ़ाइल को पढ़ने की कोशिश कर रहे हैं जिसमें आप अपने एंड्रॉइड ऐप की www निर्देशिका में शामिल हैं? –

+0

हां, वास्तव में, कि मैं क्या चाहते हो, एक तरह से गतिशील फ़ाइल एप्लिकेशन पैकेज में है कि लोड करने के लिए (मैं माना जाता है कि FileRead काम करेगा, मैं किसी भी अन्य सुझाव के लिए खुला रहा हूँ) –

+0

हाँ, FileReader के लिए उपयोग नहीं है आवेदन के साथ पैक फाइलें। उन फ़ाइलों को पढ़ना @codemonkey उत्तर के अनुसार AJAX के माध्यम से किया जाता है। –

उत्तर

5

फ़ाइल अपने अनुप्रयोग के www फ़ोल्डर के अंतर्गत है, तो आप जोड़ने के लिए '/ घर/..' या 'file: ///' की जरूरत नहीं है। आपको ऐप में बंडल किए जाने के बावजूद "AJAX" fetch का उपयोग करके सामग्री लोड करने में सक्षम होना चाहिए।

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

यह एंड्रॉइड एमुलेटर पर काम करता था लेकिन लहर में नहीं था (अगर मैं इसे रिपल पर काम कर सकता हूं तो बहुत अच्छा होगा, एंड्रॉइड पर एमुलेटर को बदलने, संकलित करने और चलाने के लिए बहुत धीमा है :() –

+1

इसे क्रॉस डोमेन नीति बदलना लहर काम करता है: डी –

+0

मैं इस स्थानीय फ़ाइल को कैसे लिखूं? –

1

त्रुटि आप देख रहे हैं वास्तव में एक न के बराबर "चेतावनी" विधि बुला कॉर्डोबा-2.4.0.js का परिणाम है। यह कंसोल होना चाहिए। चेतावनी। यह चेतावनी देने के लिए कि readAsText विधि के लिए एक स्ट्रिंग का उपयोग अब पदावनत है प्रयास करने से, और आप एक फ़ाइल संदर्भ के बजाय का उपयोग करना चाहिए कि है।

क्या हो रहा किया जाना चाहिए की एक console.warn है "अनुचित है FileReader.readAs कार्यों के साथ एक स्ट्रिंग तर्क का उपयोग करना।"

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^