我的功能可以追溯到我的WKWebView历史记录中。除了在历史记录中回溯超过2时,这正如预期的那样工作。此时,evaluateJavasScript
功能不再出现在正确的历史记录项上。
func backButtonClicked() {
webView.goBack()
webView.evaluateJavaScript("arrivedFromBackButton()") { (response, error) -> Void in
print(response) // webpage outputs the title of the page
}
}
按顺序排列的页面标题是:Main - >用户信息 - >详细信息 - >历史
如果在"历史"而我backButtonClicked()
一遍又一遍地调用这个输出:
evaluateJavaScript
似乎发生在上一页,但只有当我尝试回到历史中的3个或更多位置时才会发生。有没有人对这会导致什么有任何想法?我已将evaluateJavaScript
包裹在DispatchQueue.main.async
只是为了确保它在同一个帖子上,但仍然没有运气。
答案 0 :(得分:0)
使用func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
似乎已经解决了我的问题。它也在goBack(_:)
函数的末尾调用。我只需要创建一个布尔变量,可以检查它是否应该触发evaluateJavaScript