Uiwebview가로드 이벤트를 완료했습니다
문제
UIWebView (iPhone)가 URL로드를 완료했을 때 이벤트를 시작할 수 있습니까?
UIWebView의 현재 URL을 어떻게 알 수 있습니까?
해결책
예, 가능합니다. 사용 UIWebViewDelegate
대의원에서 프로토콜 및 다음 방법을 구현하십시오.
- (void)webViewDidFinishLoad:(UIWebView *)webView
URL을 원한다면 속성을 사용하여 마지막 요청을받을 수 있습니다. request
:
webView.request.URL
다른 팁
발견 된 솔루션 중 어느 것도 나에게 효과가 없었습니다.
그런 다음 Google/StackoverFlow에서 찾은 다른 솔루션보다 적어도 더 잘 작동하는이 예를 찾았습니다.
매우 간단한 방법 :
1 단계: 대의원을 설정하십시오 UIWebViewDelegate
헤더 파일에서.
2 단계: 다음을 추가하십시오 webViewDidFinishLoad
현재 URL을 얻는 방법 webview
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Current URL = %@",webView.request.URL);
//-- Add further custom actions if needed
}
"URL을 얻는"부분에 대한 Pascal의 답변은 괜찮습니다.
하지만!
uiwebviewdelegate의 문서에서 Apple의 문서 : "WebViewDidFinishload : 웹보기가 프레임로드가 완료된 후 전송됩니다."
프레임! = 페이지.
페이지가 "완료된로드"되면 WebViewDidFinishload가 호출됩니다. 그 전에는 여러 번 호출 할 수 있습니다. Amazon.com의 페이지로드는 webViewDidFinishLoad로 수십 개의 호출을 생성 할 수 있습니다.
페이지 소스를 제어하면로드 테스트를 수행 할 수 있으며 해당 경우 작동합니다. "페이지가 완료된 후"라는 호출에만 관심이있는 경우 WebViewDidFinishload가 적절합니다.
임의의 JavaScript가있는 임의의 페이지의 경우, 영구적으로 광고 배너를로드하거나 자동 스CROLING 배너를로드하거나 비디오 게임을 구현하면 페이지가 "완료된로드"라는 아이디어가 정통합니다.