【发布时间】:2021-10-24 10:04:51
【问题描述】:
我已经实现了 WKWebView,一切都很完美。 canGoBack 值已更改,但 canGoForward 始终返回 false。如果我完全启用强制,那么它可以工作,但是当有任何转发 url 时,我想启用转发按钮。
WKWebView 不包含 webViewDidStartLoad 和 webViewDidFinishLoad 委托方法,所以我使用 didFinish 方法。它适用于后退按钮但前进按钮不起作用!我已经检查过 StackOverFlow 没有找到 WKWebview 的解决方案。
下面是我的代码:
func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void){
buttonConfiguration(webView: webView)
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
buttonConfiguration(webView: webView)
}
func buttonConfiguration(webView: WKWebView){
print("Back", webView.canGoBack)
print("Forward", webView.canGoForward)
backButton.isEnabled = webView.canGoBack
forwardButton.isEnabled = webView.canGoForward
}
仅提及代码与此问题相关 谢谢!
【问题讨论】:
-
你不应该在某个时候给
decisionHandler打电话吗? -
使用
webView(_:didFinish:)确保网页已经加载。 -
@Sweeper 是的,我做了 decisionHandler(.allow)
-
是的,我提到我使用了 didFinish。我只是想知道如果我刷新屏幕然后它会启用但不会像后退按钮启用那样自动启用。
-
标签: ios swift webview wkwebview swift5