2014-10-14 7 views
6

Sto cercando di caricare una pagina web in un controllo WKWebView senza caricarla come una visualizzazione secondaria:didFinishNavigation non essere chiamato

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]; 

L'url che sto cercando di caricare è questo:

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

il seguente WKNavigationDelegate metodo non viene chiamato:

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

mio NSObject conforme alla WKNavigationDelegate protocollo.

Devo fare qualcos'altro?

Apprezzo molto qualsiasi aiuto.

risposta

0

Il caricamento della stessa URL sembra funzionare per me.

Nota: Il metodo didFinishNavigation viene chiamato dopo il completamento del caricamento del frame principale (questo include il caricamento di materiale da altri host presenti nel frame principale). Quindi, se qualcosa dovesse rispondere lentamente, il metodo didFinishNavigation non verrà richiamato fino a quando non verrà risolto.