多个 WKWebView 实例的独立 webView didFinish WKNavigationDelegate 方法

Posted

技术标签:

【中文标题】多个 WKWebView 实例的独立 webView didFinish WKNavigationDelegate 方法【英文标题】:Independent webView didFinish WKNavigationDelegate methods for multiple WKWebView instances 【发布时间】:2018-03-09 22:08:30 【问题描述】:

有没有办法在不同的 webView 完成加载时发生不同的操作?如果我有webView1webView2,我如何创建两个独立的webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) 函数,分别为其中一个完成加载的webViews 调用?

【问题讨论】:

只比较委托方法是被webView1还是webView2调用,就像if (webView == self.webView1) // do something else if (webView == self.webView2) // do something else @AamirR 成功了,谢谢。 【参考方案1】:

WKNavigationDelegate 或任何协议的方法只能在每个类中被继承一次,但您可以轻松找出委托方法是从哪个实例调用的,如下所示:

class YourClass: WKNavigationDelegate 

    var webView1: WKWebView!
    var webView2: WKWebView!

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) 
        if (webView == self.webView1) 
            print("didFinishNavigationWebView1")
         else if (webView == self.webView2) 
            print("didFinishNavigationWebView2")
        
    


【讨论】:

以上是关于多个 WKWebView 实例的独立 webView didFinish WKNavigationDelegate 方法的主要内容,如果未能解决你的问题,请参考以下文章

为啥 wkwebview 在科尔多瓦的运行速度比移动 safari 慢?

WkWebView 实例化中的内存泄漏

WKWebView 实例可以在加载时显示网页吗?

如何使用多个独立实例管理 WildFly/JBoss

Docker,独立的多个 Rails 实例

我们如何为多个 UITab 使用相同的 WKWebView