[英]SwiftUI check if URL is reachable and switch to ContentView automaticly
我試過這個來檢查連接狀態:
func checkConnection() {
if let url = URL(string: "https://www.xxxxxxxxxxxxxxxxxxxxx") {
var request = URLRequest(url: url)
request.httpMethod = "HEAD"
URLSession(configuration: .default)
.dataTask(with: request) { (_, response, error) -> Void in
guard error == nil else {
print("Error:", error ?? "")
return
}
guard (response as? HTTPURLResponse)?
.statusCode == 200 else {
print("down")
return
}
print("up")
}
.resume()
}
}
它工作正常。 它在控制台中顯示“向上”或“向下”。 I'm a beginner in Xcode and SwiftUI, so my question is: Instead of print("up") I want to go automaticly to the "ContentView" if URL is reachable. 我嘗試了 ContentView() 但它不起作用。
謝謝你的幫助。
這可以通過 NavigationLink 輕松處理。 一種方法是執行以下操作。
如果視圖處於活動狀態,請添加綁定以保留 state。 添加導航鏈接以呈現您想要的視圖。 檢查返回真/假的條件 如果條件為真,綁定的 state 將更新 NavigationLink 並顯示視圖。
@State var isValidURL = false
//Body {...
NavigationLink(destination: ContentView(), isActive: isValidURL {}
func checkConnection() {
if let url = URL(string: "https://www.xxxxxxxxxxxxxxxxxxxxx") {
var request = URLRequest(url: url)
request.httpMethod = "HEAD"
URLSession(configuration: .default)
.dataTask(with: request) { (_, response, error) -> Void in
guard error == nil else {
print("Error:", error ?? "")
return
}
guard (response as? HTTPURLResponse)?
.statusCode == 200 else {
print("down")
return
}
self.isValidURL.toggle()
}
.resume()
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.