मैंने खोज की है लेकिन एक समान प्रश्न नहीं देख सकता है।पहुंचने योग्यता कभी-कभी विफल होती है, भले ही हमारे पास इंटरनेट कनेक्शन हो,
मैंने रीचैबिलिटी उदाहरण के अनुसार इंटरनेट कनेक्शन की जांच करने के लिए एक विधि जोड़ा है। यह ज्यादातर समय काम करता है, लेकिन जब आईफोन पर स्थापित किया जाता है, तब भी जब मैं इंटरनेट कनेक्टिविटी करता हूं तब भी यह असफल रहता है (केवल 3 जी/ईडीजीई पर - वाईफाई ठीक है)।
मूल रूप से नीचे दिया गया कोड NO।
यदि मैं किसी अन्य ऐप पर स्विच करता हूं, तो मेल या सफारी कहें, और कनेक्ट करें, फिर ऐप पर वापस स्विच करें, फिर कोड कहता है कि इंटरनेट पहुंच योग्य है। किंडा ऐसा लगता है कि इसे 'नज' की जरूरत है।
किसी ने इसे पहले देखा है? कोई विचार?
बहुत धन्यवाद जेम्स
+ (BOOL) doWeHaveInternetConnection{
BOOL success;
// google should always be up right?!
const char *host_name = [@"google.com" cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
BOOL isAvailable = success && (flags & kSCNetworkFlagsReachable) && !(flags & kSCNetworkFlagsConnectionRequired);
if (isAvailable) {
NSLog(@"Google is reachable: %d", flags);
}else{
NSLog(@"Google is unreachable");
}
return isAvailable;
}
माफी, मैं एक नोब का हूँ। मैंने अपने प्रोजेक्ट में रीचैबिलिटी क्लासेस का उदाहरण जोड़ा, लेकिन संकलित नहीं कर सकता। \t पहुंच योग्यता * hostReach = [[पहुंच योग्यता पहुंच योग्यताथोस्टनाम: @ "www.apple.com"] बनाए रखें]; काम नहीं करता है। पहुंचने योग्य विधि WithHostName विधि नहीं मिल रहा है। मैं फेरबदल करते रहेंगे ... – stoutyhk
इस काम करता है: + (bool) doWeHaveInternetConnection2 { \t \t अगर ([[गम्यता sharedReachability] internetConnectionStatus] == NotReachable) { \t \t वापसी नहीं; \t} \t बाकी \t { \t \t वापसी हाँ; \t} \t } – stoutyhk
वह कोड हमेशा आपको कनेक्ट नहीं होने पर "कनेक्ट नहीं किया गया" देता है। लेकिन एक बार जब यह "पहुंचने योग्यता" विधि पर जाता है तो यह आपको सही स्थिति देता है।तो पहली जगह सही स्थिति कैसे प्राप्त करें? – Nnp