簡體   English   中英

連接到wifi但沒有intenernet時如何檢測互聯網連接:iOS

[英]How to detect internet connection when connected to wifi but no intenernet: iOS

我只是想知道當設備連接到wifi但在調制解調器中沒有互聯網連接時如何檢測iOS中的互聯網連接。

我已經使用了蘋果和AFNetworking的可達性,但他們只檢查連接並返回連接標志,即使調制解調器中沒有可用的互聯網。

我通過Reachability擊中主機找到了解決方案: -

可能對某人有幫助。

-(BOOL)isCheckConnection {
    Reachability *rc = [Reachability reachabilityWithHostName:@"www.google.com"];
    NetworkStatus internetStatus = [rc currentReachabilityStatus];

    if(internetStatus==0)
    {
        //@"NoAccess";
        return NO;
    }
    else if(internetStatus==1)
    {
        //@"ReachableViaWiFi";
        return YES;
    } else if(internetStatus==2)
    {
        //@"ReachableViaWWAN";
        return YES;
    }
    else
    {
        //@"Reachable";
        return YES;
    }
}

為了確保您的設備真正連接到互聯網,至少您必須嘗試在任何時間啟動並運行服務器(例如stackoverflow.com或google.com)。

當然,正如問題評論中@jonrsharpe所建議的那樣,如果需要進行此項檢查以了解應用是否可以訪問Web服務器,那么還需要對您的Web服務器進行ping或類似操作。

但ping一個肯定有效的網絡服務器(如谷歌)會給你答案它你的設備連接到互聯網(所以你的調制解調器可以到達互聯網),這樣,如果您的網絡服務器沒有響應,你可以據此顯示警告提示在您的應用程序中通知用戶當前您的服務器無法訪問。

轉到代碼,您可以嘗試使用Reachability檢查連接狀態,如下所示

Reachability *reachability = [Reachability reachabilityWithHostName:@"stackoverflow.com"];
NetworkStatus networkStatus = [reachability currentReachabilityStatus];

然后檢查networkStatus變量:如果0你沒有訪問互聯網,否則YES ,所以

if(networkStatus==0) {
    // no access to internet
} else {
    // you have access to internet
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM