two*_*ate 2 javascript ios swift wkwebview
我想从 WKWebView获取http://www.devpowerapi.com/fingerprint的内容
evaluateJavaScript("document.documentElement.innerHTML")返回<head></head><body></body>而不是实际的 JSON
是否可以使用 WKWebView 获取内容?
最简单的方法(适用于这种特定情况):
webView.evaluateJavaScript("document.getElementsByTagName('pre')[0].innerHTML", completionHandler: { (res, error) in
if let fingerprint = res {
// Fingerprint will be a string of JSON. Parse here...
print(fingerprint)
}
})
Run Code Online (Sandbox Code Playgroud)
可能更好的方法来做到这一点:
因此.innerHTML返回 HTML,而不是 JSON 标头。JSON 标头是出了名的难以使用 来获取WKWebView,但您可以尝试此方法。第一组:
webView.navigationDelegate = self
Run Code Online (Sandbox Code Playgroud)
然后在WKNavigationDelegate方法中:
public func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
let res = navigationResponse.response as! HTTPURLResponse
let header = res.allHeaderFields
print(header)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4066 次 |
| 最近记录: |