Как запустить ссылки в UIWebView с помощью приложения Safari? - PullRequest
0 голосов
/ 20 октября 2010

У меня есть небольшой встроенный UIWebView для моего раздела приложения.Когда пользователь нажимает на ссылку там, ссылка открывается в этом маленьком встроенном UIWebView, который, конечно, не имеет элементов управления навигацией и не является полноэкранным.Мне это не нравитсяМогу ли я заставить его открывать ссылки в Safari?

Ответы [ 2 ]

2 голосов
/ 20 октября 2010

Вы можете реализовать метод shouldStartLoadWithRequest протокола UIWebViewDelegate для перехвата щелчков по ссылкам. Внутри этого метода вы можете использовать метод UIApplication openURL, чтобы открыть URL в соответствующем приложении (например, Safari для HTTP / HTTPS).

- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *url = [request URL];

    if ([url isEqual:YOUR_HOME_URL_CONTSTANT])
        return YES;

    [[UIApplication sharedApplication] openURL:url];

    return NO;
}
0 голосов
/ 26 апреля 2012

Вы должны реализовать shouldStartLoadWithRequest UIWebViewDelegate. Здесь вы можете увидеть, когда UIWebView начнет загружать URL. Затем вы можете указать, какие из них должны быть загружены в это веб-представление, а какие - в Safari.

Мой код выглядит так:

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType 
{
    if (inType != UIWebViewNavigationTypeLinkClicked)
    {
        //This was not a clicked link, so is probably the initial load 
        //and should be loaded in the UIWebView
        return YES;
    }

    //This was a clicked link, so load using Safari
    [[UIApplication sharedApplication] openURL:[inRequest URL]];

    return NO;
}

Здесь я использую UIWebViewNavigationType, чтобы определить, был ли это щелчок по ссылке, и отвечаю соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...