2011-03-09 7 views
27

내 응용 프로그램에서 특정 HTML 페이지가 webview에로드됩니다. 나는 "뉴런 (neuron)"과 같은 특정 레이블을 클릭 할 필요가 있으며 다른 설명으로 그 설명을 표시해야합니다. 어떻게하면 레이블을 클릭하고 webview에서 레이블을 클릭 할 수 있습니까?UIWebView 링크 클릭

답변

31

"label"은 "링크"를 의미합니까? 그렇다면 UIWebView에 대리자를주고 webView:shouldStartLoadWithRequest:navigationType을 구현하십시오. 사용자가 UIWebView에서 링크를 누를 때마다 호출됩니다.

+5

은 실제로는 항상 호출되지 않습니다. 예를 들어 일부 m.youtube.com 페이지에서 – cprcrack

+0

@cprcrack 왜 호출되지 않을지 알고 있습니까? 다른 사이트에서도 비슷한 동작이 나타납니다. – vinnybad

5

이것을 구현하는 것은 간단합니다. 매번 웹보기는 하이퍼 링크와 연결된 URL에 전달

webView:shouldStartLoadWithRequest:navigationType 

를 호출 뭔가를로드하려고합니다. 여기서 NSURLRequest 인수를 구문 분석하고 네이티브 코드에서 수행 할 작업을 처리 할 수 ​​있습니다.

65

를 사용하여 탐색 유형을 결정 위임 (실제로는 나중에 링크를로드에서의 UIWebView를 중지 NO를 반환 기억)!

내 코드 조각은

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ 


    if (navigationType == UIWebViewNavigationTypeLinkClicked){ 

     NSURL *url = request.URL; 
     [self openExternalURL:url];//Handle External URL here 

    } 

    return YES; 

} 
+1

이것이 최선의 답변으로 표시되어야한다고 생각합니다. –

+1

스탯 그램을 내장하고 프로필 링크를 클릭하면 작동하지 않습니다. 그것은 이상한 유형을 기타로 감지합니다. – Nemanja

관련 문제