2011-12-15 4 views
1

내 아이폰 응용 프로그램의 FAQ 페이지에서 일하고 있어요. 상단에있는 몇 가지 질문 링크를 통해 답변을 얻을 수 있습니다. 일부 답변에는 UIWebView 대신 Safari에서 열고 자하는 외부 링크가 있습니다. Safari의 UIWebView 열린 링크가 작동하지 않습니까?

나는 here에서이 코드 를 발견

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType { 
    if (inType == UIWebViewNavigationTypeLinkClicked) { 
     [[UIApplication sharedApplication] openURL:[inRequest URL]]; 
     return NO; 
    } 

    return YES; 
} 

를 내가 링크를 열려면 두 번 링크를 클릭 할 몇 가지 이유. 처음 강조 표시 한 링크를 터치합니다. 두 번째로 목적지 링크 또는 Safari에서 열리는 외부 링크를 터치합니다. 그러나 위 코드를 제거하면 첫 번째 터치에서 작동하지만 외부 링크는 내 WebView에서 열립니다.

참고 : 나는 UIWebView 대리인 이름이 wvFAQ입니다. 내가 코드에 뭔가 빠져 있다고 생각하니?

질문 : 어떻게 한 번의 클릭에서 링크를 엽니 다? 대답

+0

그래서 ... 당신의 질문은 무엇인가? –

+0

질문이 잘 업데이트되었습니다. – HardCode

+0

여기에 아무도 없습니다. – HardCode

답변

5

마지막 here 여기

에서 내 질문에 대한 답을 찾을 수 있습니다 :

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; 
{ 
    NSURL *requestURL =[ [ request URL ] retain ]; 
    if (([ [ requestURL scheme ] isEqualToString: @"http" ] || [ [ requestURL scheme ] isEqualToString: @"https" ] || [ [ requestURL scheme ] isEqualToString: @"mailto" ]) 
     && (navigationType == UIWebViewNavigationTypeLinkClicked)) { 
     return ![ [ UIApplication sharedApplication ] openURL: [ requestURL autorelease ] ]; 
    } 
    [ requestURL release ]; 
    return YES; 
} 
관련 문제