2013-02-26 4 views
1

iPhone과 iPad 간의 uiwebview에 대해 사용자 에이전트를 토글하려고합니다. 그래서 아이 패드 사용자 에이전트에서 아이폰 사용자 에이전트로 그리고 뒤로 버튼을 바꿀 수 있습니다. 내가있는 UIWebView를 다시 경우에도 http://www.mphweb.com/en/blog/easily-set-user-agent-uiwebview사용자 에이전트를 여러 번 변경하십시오.

불행하게도, 사용자 에이전트가 한 번만 변경할 수 있습니다

나는이 링크를 발견했다.

누구나 할 수있는 방법에 대한 아이디어가 있습니까?

Btw, 나는 또한 urlrequest 헤더에서 사용자 에이전트를 설정하지 않고 시도했다.

감사

+0

"사용자 에이전트는 uiwebview를 다시 만들었더라도 한 번만 변경할 수 있습니다." - 두 개의 웹 뷰를 만드는 사이에 NSUserDefaults의 값을 다시 설정하면 어떻게됩니까? 그것은 그 포스트에 대해 논평 한 사람에게 효과가있는 것 같습니다. –

+0

업데이트 : NSUserDefaults 값을 재설정하여 사용자 에이전트를 여러 번 변경할 수 있지만 시뮬레이터가 아닌 장치에서만 변경할 수 있습니다. – user1175019

답변

1

내도, 내가 한 번만 사용자 에이전트를 설정 할 수 있었다. 그럼 나는 더 이상 그것을 바꿀 수 없다. 나는 시뮬레이터와 장치에서도 시도했다. 같은 문제.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSDictionary *dictionary = @{@"UserAgent" : @"MyOWnUserAgent_2"}; 
    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary]; 
} 

웹보기를 사용하지 않습니다. 재부팅, 다시 ... 문제는 아직 거기, 내가 다시, 나는 그만, 내가 청소

NSURLSession *session = [NSURLSession sharedSession]; 
[[session dataTaskWithURL:[NSURL URLWithString:urlRequest] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) 

, 장치에서 응용 프로그램을 삭제 : 난 그냥 같이 호출합니다. OS X 10.11.5 (15F34)에서 XCode 7.3 (7D175)을 실행하고 Deploymen Target iOS 9.1, Base SDK iOS 9.3을 빌드합니다. 실마리가 있습니까?

0

당신은하기 전에이 기능 를 호출해야합니다

static void appendUA(NSString *uaStr) { 
    if (!uaStr) 
     return; 

    UIWebView *tempWebView = [[UIWebView alloc] initWithFrame:CGRectZero]; 
    NSString *secretAgent = [tempWebView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"]; 
    secretAgent = [secretAgent stringByAppendingString:uaStr]; 
    NSDictionary<NSString *, id> *domain = [[NSUserDefaults standardUserDefaults] volatileDomainForName:NSRegistrationDomain]; 
    if (domain) { 
     NSMutableDictionary<NSString *, id> *newDomain = [domain mutableCopy]; 
     [newDomain setObject:secretAgent forKey:@"UserAgent"]; 
     domain = newDomain; 
    } else { 
     domain = [[NSDictionary alloc] 
        initWithObjectsAndKeys:secretAgent, @"UserAgent", nil]; 
    } 

    [[NSUserDefaults standardUserDefaults] removeVolatileDomainForName:NSRegistrationDomain]; 
    [[NSUserDefaults standardUserDefaults] setVolatileDomain:domain forName:NSRegistrationDomain]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
} 

이 WKWebview /있는 UIWebView를 만들려고하고, 공간가 자동으로 추가하지 입니다.

appendUA(@" ====TEST_UA===="); 
    WKWebView *wkWebView = [WKWebView new]; 
    //... 
관련 문제