使用" [[UIApplication sharedApplication] openURL:[NSURL URLWithString:click_url]]"时监控 iOS URL 重定向时间点



我正在为 iOS 开发一个广告 SDK,现在有一个问题。当用户点击图像广告时,它将通过 Safari 打开一个网址,我使用此代码

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:click_url]]

click_url是一个urlString,它将重定向到应用商店。需要记录重定向时间点,我测试代码以找到一种方法来解决它。

NSURL *url = [NSURL URLWithString:@"http://www.xxxx.com/xxxxxx];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

用于记录重定向请求和时间点的委托方法

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response {
NSLog(@"====================================");
NSLog(@"will send requestn%@", [request URL]);
NSLog(@"redirect responsen%@", [response URL]);
return request;

}有一个问题,方法"OpenURL"的请求与"NSURLConnection"的请求不同,那么当我使用openURL记录重定向信息时该怎么办。

谢谢大家的回答,我用另一种方式解决了这个问题。UIWebView:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"%@",request.URL.absoluteString);
return YES;

}

我将"openurl"替换为"UIWebView",效果相同。

openURL 方法允许打开设备中安装的另一个应用程序。 没有发送请求。您可以在调用此方法之前记录时间点:

//add some code to record timepoint by using [NSDate date] (i suppose)
...some code ...
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:click_url]];

让我知道这是否响应您的要求。 如果没有,您能否提供更多详细信息:)

最新更新