1

リダイレクトされた URL をコンソールに表示しようとしています。コードのどこかに小さな詳細が欠けている可能性があります。

- (void)viewDidLoad {
 UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 119,     self.view.bounds.size.width, self.view.bounds.size.height - 165)];
webView.backgroundColor = [UIColor whiteColor];
//    webView.userInteractionEnabled = NO;
webView.opaque = NO;
[webView loadHTMLString:self.item.description baseURL:[NSURL URLWithString:self.item.link]];
[self.view addSubview:webView];
webView.delegate = self;
}


 - (NSURLRequest *)connection:(NSURLConnection *)connection
         willSendRequest:(NSURLRequest *)request
        redirectResponse:(NSURLResponse *)redirectResponse
{
//Make sure tinyurl is doing the redirection
if([[[redirectResponse URL] host] compare:@"bitly.com"
                                  options:NSCaseInsensitiveSearch] == NSOrderedSame)
{
    NSLog(@"Redirect Location: %@", [request URL]);
}

//call [connection cancel]; to cancel the redirect and stop receiving data
//return nil; to cancel redirect but continue receiving data
//return request; will continue the redirection as normal
    return request;
 }
4

2 に答える 2

2

NSURLConnectionDelegateのデリゲート メソッドを使用していますが、適切なメソッドではありませんUIWebView

リクエストをUIWebViewどのようNSLogに印刷する予定ですか? UIWebViewDelegateを使用している場合、ケースをチェックする正しい方法は次のとおりです。

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType  {

  NSLog(@"Redirect Location: %@",[request.URL absoluteString]);
}
于 2013-03-12T16:01:41.410 に答える
0
- (NSURLRequest *)connection:(NSURLConnection *)connection
         willSendRequest:(NSURLRequest *)request
        redirectResponse:(NSURLResponse *)redirectResponse

これはUIWebViewデリゲートメソッドではありません。したがって、すべてのコードを表示していない限り、呼び出されることはありません。

そのような呼び出しを利用するには、NSURLConnectionを作成する必要があります。

NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];
于 2013-03-12T16:00:01.220 に答える