问题描述
我有一个异步功能,loadHTMLString,我调用它来从 HTML 文件中加载文本。加载过程需要时间,几乎一秒钟。问题是:如果文件已加载,我想继续使用我的代码,但我不知道加载何时完成。有没有办法做到这一点?
func generateAndLoadPDF() {
// Thats my HTML File
let html = HTML.get(from: "Vorlage.html")
// I load this HTML File in my WebView,that takes almost a second
wkWebView.loadHTMLString(html,baseURL: Bundle.main.bundleURL)
// I delayed the Following Code,so the HTML-String has time to load
// Actually I dont want to delay the Code,I want that the following Code runs after .loadHTMLString is finished.
dispatchQueue.main.asyncAfter(deadline: .Now() + 1) {
// I generate the PDF
let wkPDFData = PDF.generate(using: self.wkWebViewPrintFormatter())
self.loadIntoWKWebView(wkPDFData)
}
}
谢谢, 展位
解决方法
符合WKNavigationDelegate
webView.navigationDelegate = self
extension ViewController: WKNavigationDelegate {
func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!) {
debugPrint("didFinish")
}
}