如何添加ActivityIndicator(旋转轮)到这个WebView加载网站时?
下面是WebView的代码:
import Foundation
import SwiftUI
import WebKit
struct WebView : UIViewRepresentable {
var url: String
func makeUIView(context: Context) -> WKWebView {
guard let url = URL(string: self.url) else {
return WKWebView()
}
let request = URLRequest(url: url)
let wkWebView = WKWebView()
wkWebView.load(request)
return wkWebView
}
func updateUIView(_ uiView: WKWebView, context: UIViewRepresentableContext <WebView>) {
}
}
下面是在另一个视图中显示WebView的代码,并告诉它要加载哪个URL:
WebView(url: "https://www.google.com")
谢谢!
编辑:我必须能够传递的URL作为一个字符串,如上图所示,当调用WebView在另一个视图。这样,我就可以很容易地告诉WebView要加载什么URL,并将WebView()的两个示例放在一个视图中,显示不同的网站,如下所示:
VStack {
WebView(url: "https://www.google.com")
WebView(url: "https://www.bing.com")
}
2条答案
按热度按时间fv2wmkja1#
您可以使用以下代码,它包含“UIActivityIndicatorView”,并使用“WKNavigationDelegate”处理
lc8prwob2#
Thanks to Faizan for the excellent solution!
如果您想摆脱框架逻辑(使用硬编码的数字),这里有一个使用约束的重写,以使活动指示器居中。我还将其颜色设置为
.label
,因此它更适合亮/暗模式。