मैं जो developement (http://10.0.2.10:3000) के लिए एक स्थानीय सर्वर पर चलाता है एक उल्का एप्लिकेशन है। ROOT_URL
सही ढंग से सेट किया गया है इसलिए __meteor_runtime_config__.ROOT_URL
इस यूआरएल के बराबर है। बेशक ऐप 10.0.2.0/24 के भीतर क्लाइंट कंप्यूटर पर ब्राउज़र में पूरी तरह से ठीक काम कर रहा है। ऐप मेरे एंड्रॉइड सेल फोन पर मोबाइल क्रोम/फ़ायरफ़ॉक्स पर भी ठीक काम कर रहा है जो 10.0.2.0/24 का हिस्सा भी है। हालांकि जब मैं इसे meteor run android-device --mobile-server http://10.0.2.10:3000/
के साथ इस सेल फोन पर ऐप के रूप में चलाने की कोशिश करता हूं तो कुछ अजीब होता है:मेटीर/कॉर्डोवा ऐप को 10.0.2.2 से कनेक्ट करने से कैसे रोकें? (और क्यों एप्लिकेशन वहाँ कनेक्ट करता है?)
जब ऐप पहली बार शुरू होता है (या सभी ऐप डेटा साफ़ करने के बाद पहली बार) यह काम करता है (सामग्री कुछ छोटे सेकंड के लिए डीबी से लोड किया जाता है)। फिर ऐप रीलोड और डीबी से किसी भी रिमोट कंटेंट को अब लोड नहीं किया जाता है। जब दूरस्थ सामग्री भरी हुई है इस रिटर्न http://10.0.2.10:3000/ जैसे मैं उम्मीद करेंगे
Meteor.startup(function(){
console.log(__meteor_runtime_config__.ROOT_URL);
})
पहली बार: मैं देखने के लिए जहां उल्का से कनेक्ट करने की कोशिश करता है निम्नलिखित समारोह जोड़ लिया है। दूसरी बार जब रिमोट कंटेंट लोड नहीं होता है तो यह http://10.0.2.2:3000/ देता है।
सवाल अब यह है क्यों उल्का/Cordova यह क्या कर रहा है और मैं इस व्यवहार को कैसे रोक सकते हैं? क्योंकि स्पष्ट रूप से मैं इस तरह से ऐप का परीक्षण नहीं कर सकता। मुझे अभी तक यकीन नहीं है कि यह उत्पादन में काम करेगा जब मेरे पास एफक्यूडीएन और एचटीटीपीएस प्रॉक्सी है लेकिन यह बिंदु से परे है।
मैं 10.0.2.2 मेरी लैन में कुछ नहीं चल रहा है के रूप में पता लगाने की कोशिश और मैं इस आईपी कहीं भी निर्दिष्ट नहीं किया है और /cordova-build/www/application/index.html
में यह पाया जो boilerplate_web.cordova.html
से उत्पन्न होने लगता है (इस लिंक https://searchcode.com/codesearch/view/91819963/ देखें)। हालांकि उल्का एक फ़ोल्डर cordova-build-override
के साथ इन उत्पन्न फ़ाइलों ओवरराइड करने के लिए संभावना प्रदान करता है और इसलिए मैं पूरे
if (/Android/i.test(navigator.userAgent)) {
//[...]
}
ब्लॉक को दूर करने की थी और एक छोटी console.log('removed')
गयी। इसे बुलाया जाता है इसलिए मुझे पता है कि ओवरराइड सफल रहा था और जब मैं पूरी निर्मित .apk फ़ाइल 10.0.2.2 के माध्यम से grep अब और नहीं मिला है - अभी भी व्यवहार वही है।
कोई भी विचार क्या हो रहा है और क्या करना है?
क्या यह पोस्ट आपकी समस्या की व्याख्या करता है? विद्रोह उत्तर को देखें: http://stackoverflow.com/questions/34658956/meteorjs- मोबाइल-build-rooturl-is-always-10-0-2-23000-instead-of-the-real-serv/34792259# 34792259 – Rebolon