SwiftUI检查URL是否可访问,并自动切换到ContentView
我尝试此操作以检查连接状态:SwiftUI检查URL是否可访问,并自动切换到ContentView,swiftui,connection,func,contentview,Swiftui,Connection,Func,Contentview,我尝试此操作以检查连接状态: func checkConnection() { if let url = URL(string: "https://www.xxxxxxxxxxxxxxxxxxxxx") { var request = URLRequest(url: url) request.httpMethod = "HEAD" URLSession(configuration: .default) .dataTask
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()
}
}
而且效果很好。它在控制台中显示“向上”或“向下”。我是Xcode和SwiftUI的初学者,所以我的问题是:
如果URL是可访问的,我想自动转到“ContentView”,而不是打印(“up”)。我尝试了ContentView(),但它不起作用
感谢您的帮助。这可以通过导航链接轻松处理。一种方法是执行以下操作 添加绑定以保持视图处于活动状态时的状态。 添加导航链接以显示所需的视图。 检查您的条件是否返回真/假 如果条件为true,则绑定状态将更新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()
}
}
您能否显示您当前所在的视图以及如何调用
checkConnection
?