IPhone - UIWebview - Получите URL-адрес ссылки, нажатой
Я создаю приложение, в котором есть текстовое поле и кнопка вверх сверху и вид в Интернете под ними.
Когда пользователь вводит URL-адрес в текстовое поле и нажимает кнопку "Перейти", он начнет загрузку страницы в webview.
Когда пользователь нажимает на какую-либо ссылку, я хочу показать URL-адрес страницы (загружаемой) в текстовое поле.
Как я могу получить URL-адрес ссылки, нажатой.
Также есть некоторые веб-сайты, которые будут перенаправлены на другой сайт. Итак, мой вопрос заключается в том, как показать URL-адрес загружаемой страницы в текстовое поле?
Ответы
Ответ 1
Внедрите это в свой класс 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;
}
Ответ 2
Если вы специально хотите 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);
Это все, что я нашел после длительного поиска, возможно, это поможет кому-то.
Ответ 3
Для этого используется метод делегата, реализующий его следующим образом:
- (void)webViewDidStartLoad:(UIWebView *)webView {
NSURL* url = [webView.request URL];
urlTextField.text = [url absoluteString];
}