首页 > 解决方案 > 如何完成/破坏不需要的 webview 进程?

问题描述

伙计们,我一直在开发一个应用程序,它一半是原生的,一半是基于 WKWebView 的。问题是,当我从本机端更改用户并使用 WebView 再次登录系统时,旧的 WebView 继续工作。声音从旧网络播放。我也可以从 Safari 的开发者工具中看到它。

self.webview?.load(URLRequest(url: URL(string: lastURL)!))

当我从本机端选择另一个用户时,我会在 cookie 中设置新的 sessionID 后获得一个会话并在网络上连接新会话。我再次加载网络。

self.webview?.load(URLRequest(url: URL(string: lastURL)!))

我试过通知和观察者,

@objc func destroyWeb(notification: NSNotification){
        print("old webview is empty now") //debugging lol 
        self.webview.load(URLRequest(url:(URL(string: "about:blank")!)))
        self.webview.stopLoading()
}

但没有太大帮助。让我告诉你它是怎么回事。

https://i.hizliresim.com/VQzALZ.png

标签: iosswiftwkwebview

解决方案


你的旧 WebView 仍然可以工作,因为旧的 webview 没有调用 dealloc 方法。您可以将 dealloc 方法添加到 webview 代码中,例如

deinit {
        debugPrint("webview==>>deinit )")
    }

观察 webview 是否没有解除分配。如果你不想使用 webview,你应该释放它们


推荐阅读