문제

UIWebView (iPhone)가 URL로드를 완료했을 때 이벤트를 시작할 수 있습니까?

UIWebView의 현재 URL을 어떻게 알 수 있습니까?

도움이 되었습니까?

해결책

예, 가능합니다. 사용 UIWebViewDelegate 대의원에서 프로토콜 및 다음 방법을 구현하십시오.

- (void)webViewDidFinishLoad:(UIWebView *)webView

URL을 원한다면 속성을 사용하여 마지막 요청을받을 수 있습니다. request:

webView.request.URL

다른 팁

발견 된 솔루션 중 어느 것도 나에게 효과가 없었습니다.

그런 다음 Google/StackoverFlow에서 찾은 다른 솔루션보다 적어도 더 잘 작동하는이 예를 찾았습니다.

UIWebView-Load-Completion-Tracker

매우 간단한 방법 :

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 배너를로드하거나 비디오 게임을 구현하면 페이지가 "완료된로드"라는 아이디어가 정통합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top