Ios 检查设备是否已在Swift2中连接到internet
我正在试图找到一种方法来检查我的应用程序是否与我的应用程序的internet连接。我尝试过使用GitHub上的各种Ios 检查设备是否已在Swift2中连接到internet,ios,swift,Ios,Swift,我正在试图找到一种方法来检查我的应用程序是否与我的应用程序的internet连接。我尝试过使用GitHub上的各种可访问性库,这些库会导致我的项目出现编译错误。(由于某些原因,使其他库不可用)我还尝试了JustHTTP库,以向发出GET请求,但每次都失败 我不确定问题出在哪里,但我想知道你们中的一些人在允许用户使用该应用程序之前是如何验证与internet的连接的 该问题被标记为重复问题,并链接到使用AshleyMills提供的可达性库的问题。我已经说过,我已经尝试使用这些库了,但无法解决项目中
可访问性库,这些库会导致我的项目出现编译错误。(由于某些原因,使其他库不可用)我还尝试了JustHTTP
库,以向发出GET请求,但每次都失败
我不确定问题出在哪里,但我想知道你们中的一些人在允许用户使用该应用程序之前是如何验证与internet的连接的
该问题被标记为重复问题,并链接到使用AshleyMills提供的可达性库的问题。我已经说过,我已经尝试使用这些库了,但无法解决项目中的冲突错误。此问题提供的GET请求代码也已过期,无法在SWIFT2上使用。这个相关问题还假设我不需要支持iOS 9下的任何东西,这似乎是一个糟糕的做法。我的最低支持是iOS8向您的项目添加可达性.swift
然后尝试下面的代码
do
{
let connected: Bool = try Reachability.reachabilityForInternetConnection().isReachable()
if connected == true
{
print("Internet connection OK")
}
else
{
print("Internet connection FAILED")
let alert = UIAlertView(title: "No Internet Connection", message: "Make sure your device is connected to the internet.", delegate: nil, cancelButtonTitle: "OK")
alert.show()
}
}
catch
{
print("Handle Exception")
}
这段代码可能会有所帮助。您需要可访问性库,此代码片段可以为您提供一个示例,以检查您的设备是否通过WiFi或4G/3G/LTE接入互联网
func checkNetworkStatus() -> Bool {
let reachability: Reachability = Reachability.reachabilityForInternetConnection()
let networkStatus = reachability.currentReachabilityStatus().rawValue;
var isAvailable = false;
switch networkStatus {
case (NotReachable.rawValue):
isAvailable = false;
break;
case (ReachableViaWiFi.rawValue):
isAvailable = true;
break;
case (ReachableViaWWAN.rawValue):
isAvailable = true;
break;
default:
isAvailable = false;
break;
}
return isAvailable;
}
如果您的请求一直失败,可能是因为您不是通过https而是通过http进行请求。这与iOS 9上的ATS有关-本博客非常好地解释了如何禁用(如果您愿意-不推荐)ATSSwift 2.x(需要可访问性)
你可以获得可访问性查看此链接,它帮助你@Anbu.Karthik-不适用于蜂窝网络。哦,但我不是很清楚你的问题……请看一次,兄弟,如果这是AshleyMills提供的可访问性
库,它将不会在我的项目中编译,因为它会与其他库发生冲突。
do {
let reachable = try Reachability.init(hostname: "https:\\www.google.com")
if(reachable.currentReachabilityStatus == Reachability.NetworkStatus.ReachableViaWWAN){
//Device is connected thru 3G/4G/LTE
}else if(reachable.currentReachabilityStatus == Reachability.NetworkStatus.ReachableViaWiFi){
//Device is connected thru WiFi
}else{
//Device is not connected to the internet
}
}catch{
//Device is not connected to the internet
}