如何使webview全屏显示



我有这个代码,我试图使webview的高度是一个全屏

struct ContentView: View {
@State private var showWebView = false
private let urlString: String = "https://example"

var body: some View {
VStack(spacing: 40) {
// Normal WebView
WebView(url: URL(string: urlString)!).frame(height: 900)
.cornerRadius(10)
.shadow(color: .black.opacity(0.3), radius: 20.0, x: 5, y: 5)
}
}
}

我已经尝试添加到高度:

height: self.view.frame.height

但是不工作

您应该将.ignoresSafeArea()修饰符添加到您的WebView:

struct ContentView: View {
@State private var showWebView = false
private let urlString: String = "https://example"

var body: some View {
VStack(spacing: 40) {
WebView(url: URL(string: urlString)!)
.cornerRadius(10)
.shadow(color: .black.opacity(0.3), radius: 20.0, x: 5, y: 5)
.ignoresSafeArea()
}
}
}

你也可以删除corenerRadius()修饰符,因为在这种情况下,它是不必要的。

要使用SwiftUI使web视图全屏,您可以在WebView对象上使用.edgesIgnoringSafeArea(.all)修饰符,如下所示:

WebView(url: url).edgesIgnoringSafeArea(.all)

这将使web视图占据整个屏幕,忽略安全区域。安全区域是屏幕上没有被设备边框或其他设备特定元素遮挡的部分。忽略安全区域将确保web视图占用屏幕上的最大空间。

你也可以使用.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)修饰符来达到同样的效果,像这样:

WebView(url: URL(string: urlString)!)
.frame(
minWidth: 0,
maxWidth: .infinity,
minHeight: 0,
maxHeight: .infinity
)

这将使网页视图占据整个屏幕,而不管设备的安全区域。

最新更新