首页 > 解决方案 > WKWebView 已失效" UserInfo={NSLocalizedDescription=WKWebView 已失效

问题描述

我正在尝试使用 webView 检索 html。我不想在视图文件中编写我的 webView 代码,因此试图在不同的类中实现它。下面是我的代码。

class BlobHelper: NSObject,WKNavigationDelegate{

    let webView = WKWebView()

    func getLyrics(){


        let url = URL(string: "https://Blob")!
        let request = URLRequest(url: url)
         webView.load(request)
        webView.evaluateJavaScript("document.getElementsByTagName('html')[0].innerHTML;", completionHandler: {(value,error)in
            print(value)
            print(error)
        })
    }
    func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!) { print("loaded") }

当我执行代码时,我得到Optional(Error Domain=WKErrorDomain Code=3 "The WKWebView was invalidated" UserInfo={NSLocalizedDescription=The WKWebView was invalidated}).

我试过的我能够使用静态检索html,但加载后无法调用didFinish。任何帮助表示赞赏。

标签: swiftwkwebview

解决方案


class ViewController: UIViewController, WKNavigationDelegate {

var webView = WKWebView()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    let configuration = WKWebViewConfiguration()
    self.webView = WKWebView(frame: .zero, configuration: configuration)
    webView.navigationDelegate = self
    let url = URL(string: "https://stackoverflow.com")!
               let request = URLRequest(url: url)
               webView.load(request)
    
    self.view = webView
    
}

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    webView.evaluateJavaScript("document.getElementsByTagName('html')[0].innerHTML;", completionHandler: { (value,error)in
        
           print(value)
    })
    
}}

推荐阅读