【问题标题】:didFinishNavigation not being called没有调用 didFinishNavigation
【发布时间】:2014-12-09 14:21:29
【问题描述】:

我正在尝试在 WKWebView 控件中加载网页而不将其作为子视图加载:

WKPreferences *preferences = [[WKPreferences alloc] init];
preferences.javaScriptEnabled = YES;
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
configuration.preferences = preferences;
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration];
webView.navigationDelegate = self;
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setValue:@"Safari" forHTTPHeaderField:@"User-agent"];
[webView loadRequest:urlRequest];

我要加载的网址是这样的:

https://www.google.com/search?q=mustang

以下WKNavigationDelegate 方法未被调用:

- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
    [webView evaluateJavaScript:@"document.getElementsByTagName('html')[0].outerHTML" completionHandler:^(id result, NSError *error) {
        NSLog(@"Result %@", result);
    }];
}

我的 NSObject 类符合WKNavigationDelegate 协议。

我需要做点别的吗?

非常感谢任何帮助。

【问题讨论】:

    标签: ios objective-c wkwebview


    【解决方案1】:

    加载相同的 URL 似乎对我有用。

    请注意: 在主机加载完成后调用 didFinishNavigation 方法(这包括从主机中存在的其他主机加载内容)。因此,如果某些事情响应缓慢,则在解决之前不会调用 didFinishNavigation 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-06
      • 2014-11-28
      • 2013-08-11
      • 2017-08-19
      • 2018-02-07
      相关资源
      最近更新 更多