簡體   English   中英

是否可以檢查WiFi是否已連接但是Swift中沒有使用可達性的互聯網連接?

[英]Is it possible to check if WiFi is connected but there is no internet connection in Swift using Reachability?

我不知道這是否可行,但這是我的問題 -

  • 當WiFi連接並且互聯網開啟時, 黃燈在路由器上發光
  • 當連接WiFi並且互聯網關閉時 ,路由器上的紅燈會亮起

那么是否有可能區分第二種情況,或者它與互聯網無法訪問時的情況相同?

我正在使用https://github.com/ashleymills/Reachability.swift

完整的代碼可以在https://github.com/deadcoder0904/net-alert找到

它基本上只在一個文件中

相關代碼 -

let reachability = Reachability()!

reachability.whenReachable = { reachability in
    if reachability.connection == .wifi {
            print("Reachable via WiFi")
            self.setStatusIcon(color: "green")
    } else {
            print("Reachable via Cellular")
            self.setStatusIcon(color: "yellow")
    }
}

reachability.whenUnreachable = { _ in
    print("Not reachable")
    self.setStatusIcon(color: "red")
}

do {
    try reachability.startNotifier()
} catch {
    print("Unable to start notifier")
    self.setStatusIcon(color: "yellow")
}

其中setStatusIcon()根據顏色設置狀態圖標

我想知道什么時候無法訪問互聯網但在Swift中連接WiFi?

我找到了解決方案。

正如Augie建議的那樣,它不可能通過Reachability進行,因為它只是檢查WiFi或Cellular是否可以訪問。

所以我不得不ping一個網站,檢查它是否在線。

如果我從它得到200響應然后它連接。

但如果我沒有得到200,那么即使WiFi連接但沒有互聯網。

我不知道如何正確Ping,所以我問了另一個問題 ,我得到了答案

完整的代碼可以在https://github.com/deadcoder0904/net-alert找到

暫無
暫無

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

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