当前位置:  开发笔记 > 前端 > 正文

向每个WKWebView加载添加唯一的完成处理程序

如何解决《向每个WKWebView加载添加唯一的完成处理程序》经验,为你挑选了1个好方法。



1> matt..:

就像您自己正确说loadString的那样,正是出于这个目的返回WKNavigation对象。因此,只需为自己创建一个字典,即可将该WKNavigation对象与完成处理程序相关联,该处理程序将在调用时存储:

var navs = [WKNavigation : () -> ()]()
func loadString(_ s:String, completionHandler:@escaping ()->()) {
    if let nav = wkWebView?.loadHTMLString(s, baseURL:nil) {
        self.navs[nav] = completionHandler
    }
}

现在,作为WKWebView的navigationDelegate,当您听到页面已加载时,可以调用其相应的完成处理程序:

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    if let f = self.navs[navigation] {
        f()
    }
}

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有