iPhone - UIWebview - Получить URL ссылки, на которую нажали - PullRequest
21 голосов
/ 13 января 2011

Я создаю приложение, которое имеет текстовое поле и кнопку «Перейти» вверху, а веб-представление - под ними.Когда пользователь вводит URL в текстовое поле и нажимает кнопку «Перейти», он начинает загрузку страницы в веб-просмотре.Когда пользователь нажимает на какую-то ссылку, я хочу показать URL страницы (загружается) в текстовом поле.Как я могу получить URL ссылки, на которую нажали.

Также есть некоторые сайты, которые будут перенаправлять на другие сайты.Итак, мой вопрос, как показать URL страницы, загружаемой в текстовое поле?

Ответы [ 3 ]

44 голосов
/ 13 января 2011

Реализуйте это в своем классе UIWebViewDelegate

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
    //CAPTURE USER LINK-CLICK.
      NSURL *url = [request URL];
      yourTextBox.text =   [url absoluteString];


      return YES;   
}
13 голосов
/ 31 октября 2014

Если вы хотите, чтобы URL ссылок нажимался пользователем, найдите его следующим образом.

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {
        NSLog(@"link clicked = %@",request.mainDocumentURL);
    }
    return YES;
}

Также, если вам нужен URL-адрес любого запроса, запрошенного со стороны клиента, либо нажав ссылку или специально запрошенного вами из webView, используйте

NSLog(@"link clicked = %@",self.webView.request.mainDocumentURL);

и если вам нужен любой текущий URL-адрес, запрошенный вами или клиентской стороной, или страница, которую вы открыли автоматически, используйте.

NSLog(@"link clicked = %@",self.webView.request.URL);

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

5 голосов
/ 13 января 2011

Для этого есть метод делегата, реализуйте его так:

- (void)webViewDidStartLoad:(UIWebView *)webView {
    NSURL* url = [webView.request URL];
    urlTextField.text = [url absoluteString];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...