WKWebView был признан недействительным "UserInfo = {NSLocalizedDescription = WKWebView был признан недействительным - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь получить 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, используя stati c, но не смог заставить didFini sh вызвать после загрузки. Любая помощь приветствуется.

1 Ответ

1 голос
/ 31 января 2020
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!) {
    print("hahahah")
    webView.evaluateJavaScript("document.getElementsByTagName('html')[0].innerHTML;", completionHandler: { (value,error)in

           print(value)
    })

}}
...