UIWebView открыть ссылку в Safari не работает? - PullRequest
1 голос
/ 15 декабря 2011

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

Я нашел этот код из здесь :

-(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.Как вы думаете, я что-то упустил в коде?

Вопрос : Как открыть ссылку в один клик?

1 Ответ

5 голосов
/ 16 декабря 2011

Наконец-то нашел ответ на мой вопрос от здесь

Вот ответ:

-(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; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...