Метод webView:decidePolicyForNavigationAction:
является частью протокола WebPolicyDelegate
.Есть два способа сделать это.Если вы хотите знать только, когда происходит перенаправление, вы можете использовать webView:didReceiveServerRedirectForProvisionalLoadForFrame:
из WebFrameLoadDelegate
Protcol:
- (void)webView:(WebView *)webView didReceiveServerRedirectForProvisionalLoadForFrame:(WebFrame *)frame {
NSLog(@"%@",[[[[frame provisionalDataSource] request] URL] absoluteString]);
}
Если вы хотите изменить перенаправление, используйте webView:resource:willSendRequest:redirectResponse:fromDataSource:
из WebResourceLoadDelegate
протокол:
- (NSURLRequest *)webView:(WebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(WebDataSource *)dataSource {
NSURLRequest *request = redirectResponse;
//make any changes to and return new request
return request;
}
В зависимости от того, как вы это делаете, убедитесь, что вы установили правильный делегат в webView, чтобы вызывать вызываемые методы.