首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WKWebview预防updateUIView

WKWebview预防updateUIView
EN

Stack Overflow用户
提问于 2020-05-25 07:57:55
回答 1查看 266关注 0票数 0

在创建WKWebView时,我通过@Binding webPageURL传递网页webPageURL

我还通过webPageURL更新了显示的网站。

这里的问题是,当我调用NavigationLink并从NavigationLink导航回来时,调用updateUIView方法,WKWebView重新加载网页。

如何防止WKWebView在从NavigationLink返回时调用方法NavigationLink

代码语言:javascript
复制
struct MainView:View {

    @State private var isActive = false
    @Binding var stateWebPageURL:String

    var body: some View {
        return VStack {
            MyWKWebView(webPageURL:$stateWebPageURL)
            NavigationLink(destination: SecoundDestination(),isActive: $isActive) {
                Text("Do Something")
            }
        }
    }
}

代码语言:javascript
复制
struct MyWKWebView: UIViewRepresentable {

    @Binding var webPageURL:String

    func updateUIView(_ uiView: WKWebView, context: Context) {
        let pageURL = URL(string:webPageURL)
        let urlRequest = URLRequest(url: pageURL!)
        uiView.load(urlRequest)
    }

    func makeUIView(context: Context) -> WKWebView {
        let webView = WKWebView(frame: .zero,configuration: webConfiguration)
        let pageURL = URL(string:webPageURL)
        let urlRequest = URLRequest(url: pageURL!)
        webView.load(urlRequest)
        return webView
    }

    func makeCoordinator() -> ContentController {
        ContentController()
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-05-25 11:08:10

如果代码是不可测试的,那么只需读取代码,就可以显式地使MyWKWebView等效,如下所示

代码语言:javascript
复制
var body: some View {
    return VStack {
        MyWKWebView(webPageURL:$stateWebPageURL).equatable()   // << here !!

代码语言:javascript
复制
struct MyWKWebView: UIViewRepresentable, Equatable {
    static func == (lhs: MyWKWebView, rhs: MyWKWebView) -> Bool {
        lhs.webPageURL == rhs.webPageURL
    }

    // ... other your code 

SwiftUI不应该更新相同的视图,所以应该工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61998142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档