小编Roe*_*ops的帖子

在WKWebView中获取静态页面的最终渲染高度

在我的应用中,我使用WKWebView加载具有静态内容的网页。

我想知道contentSize网页完全在中呈现后的高度WKWebView

所以我认为我可以webView:didFinishNavigation:为此使用委托:

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate {

    @IBOutlet weak var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        webView.navigationDelegate = self
        webView.uiDelegate = self

        webView.load(URLRequest(url: URL(string: "https://www.rockade.nl/testpage/testpage.php")!))
    }

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        print("finished loading: height=\(webView.scrollView.contentSize.height)")
    }

}
Run Code Online (Sandbox Code Playgroud)

我的这段代码的问题是完全呈现页面之前调用了此委托,因此我得到的高度的不同结果,甚至值为0。

当我添加一小段延迟后,我会得到正确的结果,但是感觉就像是在砍。

使用这样的观察者

var myContext = 0
webView.scrollView.addObserver(self, forKeyPath: "contentSize", options: .new, context: &myContext)

override func observeValue(forKeyPath keyPath: String?, of object: Any?, …
Run Code Online (Sandbox Code Playgroud)

ios swift wkwebview

1
推荐指数
1
解决办法
850
查看次数

标签 统计

ios ×1

swift ×1

wkwebview ×1