2017-10-08 20 views
1

모바일 데이터 (3G/4G)를 사용할 수 있지만 모바일 네트워크에 데이터가 없습니다.iOS : 인터넷에 연결되었지만 인터넷에 연결되어 있지 않습니다.

위의 상태를 신속하게 알 수 있습니까?

아래 코드를 확인했지만 잘못된 정보를 제공합니다. 조건은 모바일 데이터가 꺼져있을 때만 충족됩니다. 내 요구 사항은 모바일 데이터가 ON없고

let reachability = Reachability(hostName: "https://www.google.com") 
    if reachability.currentReachabilityStatus() == NotReachable { 

    } 
+0

근무 해결책을 찾기에 avialable 어떤 인터넷이다 (?). [여기] (https://stackoverflow.com/questions/24260833/ios-reachabilitywithhostname-yes-although-it-should-be-no)와 [여기] (https://github.com/ashleymills/Reachability)를보십시오. 신속한/issues/115) –

+0

당신은 불가능하다고 말하고 있습니까 – Sree

+0

예, 현재 도달 가능성 구현에서는 불가능합니다. hostName으로 초기화하면 유효한 호스트 이름인지 여부 만 확인하고 런타임에는 네트워크 연결을 확인하지 않습니다. –

답변

1

이 알려진 문제 나

func isConnectedToNetwork()->Bool { 
    var Status:Bool = false 
    let url = NSURL(string: "http://google.com/") 
    let request = NSMutableURLRequest(URL: url!) 
    request.HTTPMethod = "HEAD" 
    request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData 
    request.timeoutInterval = 10.0 
    var response: NSURLResponse? 
    _ = try? NSURLConnection.sendSynchronousRequest(request, returningResponse: &response) as NSData? 
    if let httpResponse = response as? NSHTTPURLResponse { 
     if httpResponse.statusCode == 200 { 
      Status = true 
     } 
    } 
    return Status 
}