WKWebview evaluateJavascript is not working, throws an error

限于喜欢 提交于 2019-11-29 05:48:18

Found a solution, it was simple as I was expecting, I was adding the javascript before the view complete load the content (before the Dom Ready). So I just had to move my code to the delegate method below:

I hope this helps someone.

UKDataGeek

I found that the problem was caused by the webView:didFinishNavigation: being called before the page content was actually loaded. I think the website is using angularjs.

I introduced a manual delay which seemed to d the trick for me :

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    print("loaded)")
    //abtn_run(UIButton())
    self.perform(#selector(performAction), with: nil, afterDelay: 3.0)    
}

and did my call here:

func performAction() {
    //This function will perform this after delay of 3 seconds
}

Ideally the best solution would have a listener push an event for angularjs "page ready" but I am not sure this is possible in wkwebview.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!