上部にテキストフィールドと移動ボタンがあり、その下にWebビューがあるアプリを作成しています。ユーザーがテキストフィールドにURLを入力し、[実行]ボタンをクリックすると、Webビューでページの読み込みが開始されます。ユーザーがリンクをクリックすると、(読み込まれている)ページのURLがテキストフィールドに表示されます。リンクのそのURLをクリックするにはどうすればよいですか。
また、他のサイトにリダイレクトするWebサイトもあります。だから私の質問は、テキストフィールドにロードされているページのURLを表示する方法ですか?
これを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;
}
ユーザーがクリックしたリンクのURLが特に必要な場合は、この方法で見つけてください。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSLog(@"link clicked = %@",request.mainDocumentURL);
}
return YES;
}
また、リンクをタップしてクライアント側から要求された、またはWebViewから特に要求された要求のURLが必要な場合は、次を使用します。
NSLog(@"link clicked = %@",self.webView.request.mainDocumentURL);
また、クライアント側から要求された現在のURLが必要な場合、または自動的に開いたページから要求された場合は、を使用します。
NSLog(@"link clicked = %@",self.webView.request.URL);
これは私が長い検索の後に見つけたすべてです、それは誰かを助けるかもしれません。
その目的のためのデリゲートメソッドがあり、次のように実装します。
- (void)webViewDidStartLoad:(UIWebView *)webView {
NSURL* url = [webView.request URL];
urlTextField.text = [url absoluteString];
}