12

我正在尝试在 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协议。

我需要做其他事情吗?

非常感谢任何帮助。

4

1 回答 1

0

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

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

于 2014-11-14T14:58:26.857 回答