gpt4 book ai didi

swift - WKWebView 的后退和前进按钮在应该可以前进/后退时不会激活

转载 作者:行者123 更新时间:2023-11-30 10:44:14 32 4
gpt4 key购买 nike

我正在尝试在应用程序中实现社交媒体选项,您可以在其中直接转到公司的 Twitter 页面。

WKWebView 工作正常,但是一旦我应该能够后退或前进按下按钮,这些按钮就不会激活。

是否有任何代码我没有实现?

查看界面是否有用。 enter image description here

class twViewController: UIViewController,WKNavigationDelegate {
var theUrl:URL? = nil
@IBOutlet weak var twWeb: WKWebView!
@IBOutlet weak var backButton: UIButton!
@IBOutlet weak var forwardButton: UIButton!


override func viewDidLoad() {
super.viewDidLoad()
twWeb.navigationDelegate = self
theUrl = URL(string: "https://twitter.com/EsAsturiasTV")
let myRequest = URLRequest(url: theUrl!)
twWeb.load(myRequest)
}
@IBAction func back(_ sender: Any) {
if (twWeb.canGoBack){
twWeb.goBack()
}
}
@IBAction func forward(_ sender: Any) {
if (twWeb.canGoForward){
twWeb.goForward
}
}


func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
backButton.isEnabled = twWeb.canGoBack
forwardButton.isEnabled = twWeb.canGoForward
}

在调试时,我看到调用了 webView 函数,因此它应该启用按钮,但事实并非如此。

更奇怪的是,我为 Facebook 实现了完全相同的代码(只是更改了 url),而且它工作得很好。

最佳答案

WkWebView 的后退和前进按钮状态也可以使用属性观察器检索。请在下面找到相关代码。它位于 Obj-C 中。希望您能将其转换为 Swift。

- (void)addAllObservers
{
[_wkWebView addObserver:self forKeyPath:@"canGoBack" options:NSKeyValueObservingOptionNew context:NULL];
[_wkWebView addObserver:self forKeyPath:@"canGoForward" options:NSKeyValueObservingOptionNew context:NULL];
}

- (void)removeAllObservers
{
[_wkWebView removeObserver:self forKeyPath:@"canGoBack"];
[_wkWebView removeObserver:self forKeyPath:@"canGoForward"];
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

if ([keyPath isEqualToString:@"canGoBack"] && object == _wkWebView) {

// handle property change: get the value of _wkWebView.canGoBack
}
else if ([keyPath isEqualToString:@"canGoForward"] && object == _wkWebView) {
// handle property change: get the value of _wkWebView.canGoForward
}
}

_wkWebviewWkWebview 的实例。您可以在WkWebview创建位置添加addAllObservers。因此,当属性观察器就位时,每当“canGoBack”和“canGoForward”属性值发生更改时,“observeValueForKeyPath”中都会收到回调>"可以根据当前值启用/禁用按钮状态的方法。

希望有帮助。

关于swift - WKWebView 的后退和前进按钮在应该可以前进/后退时不会激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56115864/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com