Czy można uruchomić zdarzenie po zakończeniu ładowania adresu URL przez UIWebView (Iphone).UIWebView zakończyło ładowanie Wydarzenie
Jak mogę się dowiedzieć, aktualny adres URL UIWebView?
Czy można uruchomić zdarzenie po zakończeniu ładowania adresu URL przez UIWebView (Iphone).UIWebView zakończyło ładowanie Wydarzenie
Jak mogę się dowiedzieć, aktualny adres URL UIWebView?
Tak, to możliwe. Użyj protokołu UIWebViewDelegate
i wdrożyć następujące metody w delegata:
- (void)webViewDidFinishLoad:(UIWebView *)webView
Jeśli chcesz URL, można uzyskać ostatniego żądania za pomocą właściwości request
:
webView.request.URL
bardzo prosty sposób:
Krok 1: Ustaw delegata UIWebViewDelegate
w pliku nagłówkowym.
Krok 2: Dodaj następujący webViewDidFinishLoad
sposób, aby uzyskać aktualne url webview
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Current URL = %@",webView.request.URL);
//-- Add further custom actions if needed
}
Żaden ze znalezionych rozwiązań pracował dla mnie.
Następnie znalazłem ten przykład, który działa co najmniej lepiej niż jakiekolwiek inne rozwiązanie znalezione w Google/StackOverflow.
odpowiedź Pascala dla "Uzyskiwanie URL" część jest w porządku.
Jednak!
Z dokumentacji UIWebViewDelegate, od Apple: "webViewDidFinishLoad: Wysyłane po zakończeniu wyświetlania strony internetowej w ramce internetowej."
Ramka! = Strona.
webViewDidFinishLoad jest wywoływana, gdy strona "ładuje się". Można go również nazwać wiele razy wcześniej. Ładowane strony z Amazon.com mogą generować kilkanaście wywołań do webViewDidFinishLoad.
Jeśli kontrolujesz źródło strony, możesz wykonać dla niego test obciążeniowy i będzie on działał w tym przypadku. Jeśli zależy Ci tylko na wywołaniu "po załadowaniu strony", to webViewDidFinishLoad jest wystarczający.
Dla dowolnych stron, z arbitralnym JavaScriptem, ładowaniem banerów reklamowych na wieczność, automatycznym przewijaniem banerów lub wdrażaniem gry wideo, sama idea "ładowania strony" jest błędna.
Dzięki :) Zadziałało :) – ishhhh
Przepraszam, że budzę martwy temat, ale czy webview (UIWebview *) to webView to nazwa ujścia twojej nazwy webviewu? –
@CameronTarbell Jest to metoda delegata, która przejdzie w widoku sieciowym, który zakończył ładowanie za pomocą zmiennej 'webView', niezależnie od nazwy twojego gniazdka. – Pascal