2016-11-01 1 views
1

J'ai fait quelques applications avec xcode7 (2.3) (Swift) pour l'iphone et l'ipad, tout fonctionne bien mais il y a un problème majeur dans mon Reachability, il dit "No Internet Connection" Même moi Je suis connecté à Internet via les données cellulaires, mais quand sur le wifi, ça marche bien ..Aucune connexion Internet Même connecté App Iphone

Le Webview continue de charger en arrière-plan mais il y a une erreur "Pas de connexion Internet trouvée" En face, les utilisateurs fermeront mon application car ils verront le erreur ..

s'il vous plaît, aidez-moi guyz ..

ceci est mon code:

override func viewDidAppear (animée: 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) 

    } 

} 

et voici mon joignabilité fichier

importation Fondation importation SystemConfiguration

public class joignabilité {

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 

} 

}

Répondre

0

Essayez ceci

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) 
}