2012-05-07 18 views
6

मुझे उपयोगकर्ता को निम्न शर्तों के साथ चेतावनी देने की आवश्यकता है;कोई इंटरनेट कनेक्शन नहीं होने पर उपयोगकर्ता को कैसे चेतावनी दें

  1. अनुरोध
  2. कोई इंटरनेट कनेक्शन
  3. सर्वर

यहाँ तक पहुंचने में असमर्थ टाइम आउट हो गया कोड है, घटित होने पर निम्न स्थितियों को कैप्चर करने और उपयोगकर्ता को अलर्ट करने के लिए कैसे?

failure: function (response) { 
    var text = response.responseText; 
    console.log("FAILED"); 
},success: function (response) { 
    var text = response.responseText; 
    console.log("SUCCESS"); 
} 

मैं अगर इंटरनेट पहुंचा जा सकता है की जांच करने के लिए निम्न कोड की कोशिश की, लेकिन यह काम नहीं किया

var networkState = navigator.network.connection.type 
    alert(states[networkState]); 
    if (networkState == Connection.NONE){ 
     alert('No internet '); 
    }; 

अद्यतन **

मैं अपने सूचकांक में निम्नलिखित गयी। एचटीएमएल, लेकिन, जब मैं वाईफ़ाई अक्षम करता हूं, तो मुझे अलर्ट पॉपिंग दिखाई नहीं देती है।

<script> 
function onDeviceReady() { 
    document.addEventListener("offline", function() { 
     alert("No internet connection"); 
    }, false); 
} 
</script> 
+0

क्या त्रुटि/चेतावनी कंसोल लॉग पर फेंक दिया जाता है? –

+0

कुछ भी नहीं फेंक रहा है। – user1315906

उत्तर

1

आप उपयोग कर सकते हैं PhoneGap's NETWORK API

नेटवर्क वस्तु डिवाइस के सेलुलर और वाईफाई कनेक्शन की जानकारी के लिए पहुँच देता है।

आप निम्नलिखित तरीके से यह परीक्षण कर सकते हैं,

function onDeviceReady() { 
     navigator.network.isReachable("phonegap.com", reachableCallback, {}); 
    } 

// Check network status 
// 
function reachableCallback(reachability) { 
    // There is no consistency on the format of reachability 
    var networkState = reachability.code || reachability; 
    var states = {}; 
    states[NetworkStatus.NOT_REACHABLE] = 'No network connection'; 
    states[NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK] = 'Carrier data connection'; 
    states[NetworkStatus.REACHABLE_VIA_WIFI_NETWORK] = 'WiFi connection'; 

    alert('Connection type: ' + states[networkState]); 
    } 
+0

मुझे उपरोक्त कार्यों को कहां जोड़ना चाहिए ('onDeviceReady', 'accessableCallback')। क्या यह 'app.js' में है? – user1315906

+0

आप सीधे 'navigator.network.isReachable ("phonegap.com", पहुंचने योग्य कॉलबैक, {}) शामिल कर सकते हैं;' लाइन व्हीलवर आप अपने नेटवर्क कनेक्शन का परीक्षण करना चाहते हैं और कॉलबैक फ़ंक्शन जोड़ना चाहते हैं। –

+2

फोनगैप के नवीनतम संस्करणों में से पहुंचने योग्य विधि को बहिष्कृत कर दिया गया है। –

19

तो सबसे अच्छा होगा "offline" घटना को सुनने के लिए है।

document.addEventListener("offline", function() { 
    alert("No internet connection"); 
}, false); 

इस कोड को सभी सबसे संस्करणों के लिए कार्य करना चाहिए: जब आप ऑफ़लाइन घटना मिलता है आप, आदि अपने "deviceready" कॉलबैक अपने उपयोगकर्ता चेतावनी दी है और

उदाहरण के लिए ले जो कुछ डेटा को बचाने के लिए आवश्यक कदम कर सकते हैं, फोनगैप का यह कम से कम 1.0 रिलीज के बाद से किया गया है।

+1

+1 अच्छा जवाब :) –

+0

मैंने अपना प्रश्न अपडेट किया है। कृपया एक नज़र डालें। – user1315906

+1

सुनिश्चित करें कि आपके पास manifest.xml में इंटरनेट और READ_PHONE_STATE अनुमतियां हैं। साथ ही, अगर आपने हाल ही में फोनगैप को 1.6 या 1.7 में अपग्रेड किया है, तो सुनिश्चित करें कि आपके plugins.xml "नेटवर्क स्टेटस" को "नेटवर्क स्थिति" से संदर्भित नहीं करता है, तो स्थान को स्थानांतरित करने के लिए नाम बदल दिया गया था। –

3

वास्तव में के रूप में साइमन ने कहा, आप उपयोग कर सकते

document.addEventListener("offline", youCallbackFn, false); 

या आप बूलियन संपत्ति पूछताछ कर सकते हैं

navigator.onLine 

(वापसी करना चाहिए सही या गलत)

हालांकि, इस तकनीक बता देंगे आप डिवाइस कनेक्ट है या नहीं। चेतावनी ऐसी है कि डिवाइस को वाईफाई से जोड़ा जा सकता है, लेकिन राउटर ऑफ़लाइन हो सकता है। उस स्थिति में, कम समय के साथ समय पर Ext.Ajax.request जैसे मतदान तंत्र का उपयोग करें। टाइमआउट समाप्त हो गया = ऑफ़लाइन।

1

आप अपने आवेदन के app.js में 'Ext.device.Connection' जोड़ सकते हैं।और जाँच अपने डिवाइस ऑनलाइन या ऑफलाइन का उपयोग कर कोड है:

if (Ext.device.Connection.isOnline()) { 
     alert('Connected to internet'); 
     } 
     else{ 
     alert('You are not connected to internet'); 
     } 
0

बस एम्बेड यह आपके टैग में

<body onoffline="alert('PLEASE CHECK YOUR INTERNET SETTING');">