2016-11-01 3 views
1

Я сделал несколько приложений с xcode7 (2.3) (Swift) для iphone и ipad, все работает нормально, но есть одна серьезная проблема в моем достижимости, в нем говорится: «Нет подключения к интернету» Даже я я подключен к интернету через сотовые данные, но когда на Wi-Fi работает нормально.Нет подключения к интернету Даже подключено Приложение Iphone

Веб-просмотр по-прежнему загружается в фоновом режиме, но есть ошибка «Нет подключения к Интернету». Перед вами пользователи будут закрывать мое приложение, так как они ошибка ..

пожалуйста, помогите мне .. ПЕРЦЫ

это мой код:

переопределение функ viewDidAppear (анимированный: Bool) {

if Reachability.isConnectedToNetwork() == true { 

     print("Internet connection OK") 

    } else { 

     print("Internet connection FAILED") 

     let ViewController = UIAlertController(title: "Error!", message: "No Internet Connection Found", preferredStyle: .Alert) 



     let alertAction = UIAlertAction(title: "Dismiss", style: .Destructive) { (action) in 

      print("Dismiss button tapped!") 

     } 



     ViewController.addAction(alertAction) 

     presentViewController(ViewController, animated: true, completion: nil) 

    } 

} 

и это мой достижимости Файл

Фонд импорта импорта SystemConfiguration

общественного класса достижимости {

class func isConnectedToNetwork() -> Bool { 

    var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0)) 
    zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress)) 
    zeroAddress.sin_family = sa_family_t(AF_INET) 

    let defaultRouteReachability = withUnsafePointer(&zeroAddress) { 
     SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, UnsafePointer($0)) 
    } 

    var flags: SCNetworkReachabilityFlags = SCNetworkReachabilityFlags(rawValue: 0) 
    if SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) == false { 
     return false 
    } 

    let isReachable = flags == .Reachable 
    let needsConnection = flags == .ConnectionRequired 

    return isReachable && !needsConnection 

} 

}

ответ

0

Попробуйте это

class func isConnectedToNetwork() -> Bool { 

    var zeroAddress = sockaddr_in() 
    zeroAddress.sin_len = UInt8(MemoryLayout<sockaddr_in>.size) 
    zeroAddress.sin_family = sa_family_t(AF_INET) 

    guard let defaultRouteReachability = withUnsafePointer(to: &zeroAddress, { 
     $0.withMemoryRebound(to: sockaddr.self, capacity: 1) { 
      SCNetworkReachabilityCreateWithAddress(nil, $0) 
     } 
    }) else { 
     return false 
    } 

    var flags: SCNetworkReachabilityFlags = [] 
    if !SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) { 
     return false 
    } 

    let isReachable = flags.contains(.reachable) 
    let needsConnection = flags.contains(.connectionRequired) 

    return (isReachable && !needsConnection) 
} 
Смежные вопросы