1

埋め込みUIWebViewでHTTPリファラーを設定するにはどうすればよいですか?

私はこれを経験しました、まだ成功していません。

1.viewDidLoad、私はこのコードを書きました。

[objWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"MY_URL"]]];

これが私のコードです:

- (BOOL) webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType) navigationType 
{
    NSDictionary *headers = [request allHTTPHeaderFields];
    BOOL hasReferer = [headers objectForKey:@"Referer"]!=nil;
    if (hasReferer) {
        // .. is this my referer?
        return YES;
    } else {
        // relaunch with a modified request
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            dispatch_async(dispatch_get_main_queue(), ^{
                NSURL *url = [request URL];
                NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
                [request setHTTPMethod:@"GET"];
                [request setValue:@"Referer link" forHTTPHeaderField:@"Referer"];
                [objWebView loadRequest:request];
            });
        });
        return NO;
    }
}

2.これも試しましたviewDidLoad

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"MY_URL"]];
[request setValue:@"Referel URL" forHTTPHeaderField:@"Referer"];
[objWebView loadRequest:request];

しかし、まだ成功していません。

この問題を解決するのを手伝ってください。または、このコードに問題があるかどうか教えてください。

質問を明確に提示したことを願っています。

4

2 に答える 2

3

次のコードを使用してデフォルトのユーザーエージェントを設定できます

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"Safari/528.16", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];

ここで よく 説明 され て い ます.

于 2012-08-08T13:04:19.013 に答える