你好,我想创建一个应用程序,其中包含几个webview,在它们被加载一次后,我不希望它们再次被创建,我希望它们保持实例。
我在我的应用程序中创建了一个导航视图,其中包括一个包含10个站点的列表。当我点击列表中的项目时,我想通过NavigationLink显示相应的webview。它可以工作。但是问题是,如果我点击列表的另一个项目并返回到上一个项目,它会返回到主页,webview会重新加载。我希望webview只在应用程序存活期间创建一次,并始终保持活动状态。我知道swiftui总是刷新视图是问题所在,如何防止我的webview被swiftUI刷新?
在uitkit中,这很简单,我在应用程序启动时创建了一个wkwebview数组,加载所有我的webview url,并放入单例类中。根据从我的tableview选择的项目显示相应的wkwebview。即使我改变项目,所有我的webview也都处于活动状态,即使我们看不到它们。
struct WebView : UIViewRepresentable {
let request: URLRequest
func makeUIView(context: Context) -> WKWebView {
let web = WKWebView()
web.load(request)
return web
}
func updateUIView(_ uiView: WKWebView, context: Context) {
}
}