2013-08-10 10 views
6

मैं फोनगैप (कॉर्डोवा) 3.0.0 और ईवेंट "ऑनलाइन" और "ऑफलाइन" के साथ ऐप लिख रहा हूं। जब मैंने ईवेंट "फिर से शुरू करने" की कोशिश की, तो यह घटना ठीक थी। मैं एक्सकोड 4.5 और आईओएस का उपयोग कर रहा हूं।फोनगैप घटनाएं ऑनलाइन/ऑफ़लाइन काम नहीं कर रही हैं

यह phonegap परियोजना के अपने मुख्य जावास्क्रिप्ट फ़ाइल है: सलाह

उत्तर

2

इन घटनाओं के लिए

var app = { 

    initialize: function() { 
     this.bindEvents(); 
    }, 
    // Bind Event Listeners 
    // 
    // Bind any events that are required on startup. Common events are: 
    // 'load', 'deviceready', 'offline', and 'online'. 
    bindEvents: function() { 
     document.addEventListener('deviceready', this.onDeviceReady, false); 
     document.addEventListener('online', this.onDeviceOnline, false); 
     document.addEventListener('resume', this.onDeviceResume, false); 
    }, 

    onDeviceReady: function() { 
     app.receivedEvent('deviceready'); 
    }, 

    onDeviceOnline: function() { 
     app.receivedEvent('deviceonline'); 
    }, 

    onDeviceResume: function() { 
     app.receivedEvent('deviceresume'); 
    }, 

    receivedEvent: function(id) { 
     var parentElement = document.getElementById(id); 
     var listeningElement = parentElement.querySelector('.listening'); 
     var receivedElement = parentElement.querySelector('.received'); 

     listeningElement.setAttribute('style', 'display:none;'); 
     receivedElement.setAttribute('style', 'display:block;'); 

     console.log('Received Event: ' + id); 
    } 
}; 

धन्यवाद अंदर "onDeviceReady" बाँध जा करने के लिए, वे DeviceReady घटना से पहले काम नहीं करेगी। इस Attach an event listener once the deviceready event fires

bindEvents: function() { 
    document.addEventListener('deviceready', this.onDeviceReady, false); 
    document.addEventListener('resume', this.onDeviceResume, false); 
}, 

onDeviceReady: function() { 
    app.receivedEvent('deviceready'); 
    document.addEventListener('online', this.onDeviceOnline, false); 
}, 

कृपया ध्यान दें कि ऑनलाइन/ऑफ़लाइन गतिविधि सक्रिय नहीं है जब अनुप्रयोग शुरू होता है, इन घटना केवल निकाल दिया जब कनेक्टिविटी राज्य परिवर्तनों की जांच करें। मान लें कि जब ऐप ऑफ़लाइन हो जाता है, तब तक ऐप ऑनलाइन मोड में शुरू होता है, ऑफ़लाइन ईवेंट ट्रिगर नहीं किया जाएगा, ऑनलाइन ईवेंट के लिए भी।

वर्तमान कनेक्टिविटी की जांच करने के लिए, आप आप अपने प्रोजेक्ट के लिए कनेक्शन प्लगइन जोड़ना चाहिए और फिर इस घटनाओं के सक्रिय होने का नीचे कोड

onDeviceReady: function() { 
    app.receivedEvent('deviceready'); 
    document.addEventListener('online', this.onDeviceOnline, false); 
    if((navigator.network.connection.type).toUpperCase() != "NONE" && 
     (navigator.network.connection.type).toUpperCase() != "UNKNOWN") { 
     this.onDeviceOnline(); 
    } 
} 
+1

मैं इसे करने की कोशिश की, लेकिन अभी भी काम नहीं कर रहा । केवल फिर से शुरू करें, या रोकें ठीक है। – user2374693

+2

आप घटनाओं की जांच कैसे कर रहे हैं? ऐप शुरू होने पर ये घटनाएं आग नहीं लगतीं, कनेक्टिविटी स्थिति में बदलाव होने पर यह केवल आग लगती है, यानी ऐप ऑनलाइन होता है, जब शुरू होता है और जब सिस्टम ऑफलाइन हो जाता है, ऑफलाइन ईवेंट निकाल दिया जाता है और इसके विपरीत। यदि आपको वर्तमान कनेक्टिविटी स्थिति की जांच करने की आवश्यकता है तो कृपया अद्यतन उत्तर देखें। –

+0

भविष्य के संदर्भ के लिए; फोनगैप 3.0 "नेटवर्क" के रूप में चला गया है। अब यह "navigator.connection.type" है। अधिक जानकारी के लिए दस्तावेज़ देखें: http://docs.phonegap.com/en/edge/cordova_connection_connection.md.html – NoobishPro

0

उपयोग करने के लिए की जरूरत है।

आदेश के बाद कनेक्शन प्लगइन उपयोग जोड़ने के लिए:

CMD> phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git 
8

यदि आप ऑनलाइन/ऑफ़लाइन स्थिति आप

$ phonegap local plugin add org.apache.cordova.network-information 

कि जोड़ने के बाद नेटवर्क जानकारी कमांड प्रॉम्प्ट के साथ प्लगइन पहले जोड़ने की जरूरत प्रदर्शित करना चाहते हैं प्लगइन आपके ऑनलाइन/ऑफ़लाइन ईवेंट को काम करना चाहिए, यह मेरे लिए ठीक काम करता है

+1

कॉर्डोवा उपयोग के लिए: cordova प्लगइन org.apache.cordova जोड़ें।नेटवर्क-सूचना –

+0

अच्छी तरह से काम करता है लेकिन यह ऑफ़लाइन ईवेंट को दो बार – Abhishek

2

कोरोडोवा (फ़ोनगैप नहीं) में आपको प्लगइन को इस तरह से जोड़ना होगा:
cordova plugin add org.apache.cordova.network-information

0

phonegap फ़ोल्डर परियोजना में:

phonegap plugin add org.apache.cordova.network-information 

index.js में:

var app = {}; 
app.initialize = function() { 
    document.addEventListener("online", function(){alert('online : true') }, false); 
    document.addEventListener("offline", function(){alert('online : false') }, false); 
}; 

index.html में, कहीं:

<script type="text/javascript"> 
app.initialize(); 
</script> 
+0

क्यों फेंक देता है इस तरह ऑफ़लाइन या डिवाइस की ऑनलाइन स्थिति पर दो बार फ़ंक्शन ट्रिगर करता है? –

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