【问题标题】:How can I finish/distroy unwanted webview processes?如何完成/破坏不需要的 webview 进程?
【发布时间】:2019-08-31 14:57:39
【问题描述】:

伙计们,我一直在开发一个应用程序,它一半是原生的,一半是基于 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

【问题讨论】:

    标签: ios swift wkwebview


    【解决方案1】:

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

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

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

    【讨论】:

    • 好的,我试试。但是如果它不工作,我可以让它工作吗?
    猜你喜欢
    • 2011-06-11
    • 2014-11-22
    • 1970-01-01
    • 2019-08-12
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多