получить URL-адреса 2-х uiwebview и положить в свой собственный адресный бар - PullRequest
0 голосов
/ 01 декабря 2011

В моем приложении 2 UIWebView и 2 адресс-бара, называемые WebView и WebView2, webAdress и webAdress2.Мне нужно получить URL-адрес из WebView и поместить его в webAdress, а также из WebView2 и поместить его в webAdress2.

Когда я использую этот код, обновления URL-адресов появляются только в первом webAdress, URL-адрес из apperas WebView2 в первом webAdressтоже.Более того, все страницы из WebView2 начинают загружаться в WebView.

    - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
        //CAPTURE USER LINK-CLICK.
        if (navigationType == UIWebViewNavigationTypeLinkClicked) {
            NSURL *URL = [request URL]; 
            if ([[URL scheme] isEqualToString:@"http"]) {
                [webAdress setText:[URL absoluteString]];
                [self gotoAddress:nil];
            }    
            return NO;
        }   
        return YES;   
    }

- (BOOL)webView2:(UIWebView*)webView2 shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
        //CAPTURE USER LINK-CLICK.
        if (navigationType == UIWebViewNavigationTypeLinkClicked) {
            NSURL *URL = [request URL]; 
            if ([[URL scheme] isEqualToString:@"http"]) {
                [webAdress2 setText:[URL absoluteString]];
                [self gotoAddress2:nil];
            }    
            return NO;
        }   
        return YES;   
    }

1 Ответ

2 голосов
/ 01 декабря 2011

Полагаю, вам нужен только один метод делегата.Проверьте, какой веб-просмотр вызвал этот метод делегата, и выполните действия, зависящие от этого:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
        //CAPTURE USER LINK-CLICK.
        if (navigationType == UIWebViewNavigationTypeLinkClicked) {
            NSURL *URL = [request URL]; 
            if ([[URL scheme] isEqualToString:@"http"]) {
                if (webView == webView1)
                     [webAdress setText:[URL absoluteString]];
                if (webView == webView2)
                     [webAdress2 setText:[URL absoluteString]];
                [self gotoAddress2:nil];
            }    
            return NO;
        }   
        return YES;   
    }

Просто установите для всех делегатов веб-представлений как себя, и все, что вы можете обработать все действия в этом методе.

...