Programing

[iOS] WKWebview User Agent 설정

npre 2022. 2. 18. 14:03
반응형
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{

    NSString* urlString = [URL_STRING];
    NSString *escapedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    NSMutableURLRequest *fixRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:escapedString]];
    [fixRequest addValue:@"[CUSTOM_USER_AGENT]" forHTTPHeaderField:@"User-Agent"];


    [webView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id userAgent, NSError * error) {
        if (userAgent != NULL){
            NSLog(@"default UserAgent = %@", userAgent);
            webView.customUserAgent = [NSString stringWithFormat:@"%@/[CUSTOM_USER_AGENT]", userAgent];
            [[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent": [NSString stringWithFormat:@"%@[CUSTOM_USER_AGENT]]}];
        }
    }];
    decisionHandler(WKNavigationActionPolicyCancel);
    
    [self.webView loadRequest:fixRequest];

}