2011-12-15 4 views
1

Я работаю на странице часто задаваемых вопросов в своем приложении для iPhone. У меня есть некоторые ссылки на вопросы, которые будут направлены на ответ внизу. В некоторых ответах есть внешние ссылки, которые я хочу открыть в Safari вместо UIWebView.UIWebView открыть ссылку в Safari не работает?

Я нашел этот код из 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; 
} 
Смежные вопросы