2012-10-25 11 views
5

w iOS, chciałbym, aby móc powiązać NSURLRequest - żadnegoNSURLRequest, czy wniosek nawigacyjnym lub obraz lub arkusza stylów życzenie - z UIWebView który go posłał. Wydaje się to wymagać implementacji podklasy NSURLProtocol w celu przechwytywania i analizowania żądań po ich przejściu. Jednak nie mogę znaleźć sposobu korelowania żądania z jego widokiem internetowym, a tylkowydaje się rozumieć.Correlate NSURLRequest z UIWebView

Byłoby dobrze dla żądań nawigacji, ponieważ mogłem utworzyć skojarzenie w moim UIWebViewDelegate. Ale to nie zadziała dla drugorzędnych żądań zasobów, takich jak obrazy, które nie wywołują metod UIWebViewDelegate.

Ktoś myśli o najlepszym sposobie zrobienia tego skojarzenia?

+0

NSURL * url = [NSURL URLWithString: urlAddress]; // Utwórz obiekt URL. NSURLRequest * requestObj = [NSURLRequest requestWithURL: url]; // URL Requst Obiekt [web loadRequest: requestObj]; – kamleshwar

+0

Jeśli to NSURLRequest zrzeszy odpowiedź HTML, która ma, powiedzmy, znaczniki img w nim, UIWebView automatycznie uruchomi dodatkowe żądania pobrania tych danych. Chcę również skorelować te prośby. – KevinH

Odpowiedz

0

Jeśli dobrze rozumiem Twoje pytanie, można po prostu zrobić NSURL *url = [[webView request] URL];

+0

Jeśli mam stronę internetową w witrynie www.yahoo.com z łączem do obrazu maps.google.com, właściwość 'URL' w usłudze UIWebView nie będzie miała korelacji z adresem URL reprezentowanym w żądaniu obrazu. – KevinH

0

w twojej protokołu niestandardowego, delegat canUseProtocol metoda jest wywoływana dla przywoływanych zasobów, jak również. Możesz skorzystać z tego haka, aby połączyć swoje żądania, ale nie jestem pewien, czy możesz uzyskać oddzwanianie od awarii bez anulowania tego żądania i wykonania osobnego adresu URL.

Twoje pytanie dotyczące zasobów referencyjnych doprowadziło mnie do tego odkrycia, które pozwoliło mi rozwiązać problem z buforowaniem, który miałem.

Dziękuję i mam nadzieję, że to pomoże w zamian!

Powiązane problemy