2016-11-20 1 views
1

모두 안녕하세요.iPad에서 iOS 앱의 UserAgent를 변경하십시오.

나는 WKWebView를 사용하는 모바일 앱을 만들고 있습니다.

일부 사이트를 iPhone에로드하면 모바일 웹 사이트가 반환되지만 iPad에서 일부 사이트를로드하려고하면 데스크톱 사이트를 요청하고 데스크톱과 모바일 사이트간에 전환하는 버튼을 만들고 싶습니다.

나는 아이 패드가 아니라 성공이 시도 :

self.webView.customUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 10_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Mobile/14B72" 

당신은 내가 아이폰의 userAgent를 사용하는 아이 패드에서 웹보기를 강제하려고하지만 일부 데스크톱 사이트를 요청하는 계속 볼 수있다.

여러분이 더 많은 코드를 필요로한다면 기꺼이 제공해 드리겠습니다.

감사합니다.

답변

0

이처럼 웹보기를 서브 클래스를 시도 할 수 있습니다 :

class CustomWebView: WKWebView { 
    override func loadRequest(request: NSURLRequest) -> WKNavigation? { 
     guard let mutableRequest = request.mutableCopy() as? NSMutableURLRequest else { 
      return super.loadRequest(request) 
     } 
     mutableRequest.setValue("Mozilla/5.0 (iPhone; CPU iPhone OS 10_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Mobile/14B72", forHTTPHeaderField: "User-Agent") 
     return super.loadRequest(mutableRequest) 
    } 
} 

을 첫 번째 사용자 에이전트 변경이 답변 https://stackoverflow.com/a/37474812/2579725

제안한다. 제가 모든 요청에 ​​대해 재정의 할 수있는 UIWebView에서했던 것은이었다이 :

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSMutableURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ 

    if ([request isKindOfClass:[NSMutableURLRequest class]]) 
    { 
     [request setValue:@"Mozilla/5.0 (iPhone; CPU iPhone OS 10_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Mobile/14B72" forHTTPHeaderField:@"User-Agent"]; 
    } 
    return YES; 
} 

내 조사를 할 수있는이 방법은 WKWebView에서 불가능하다고 나에게 결과를 제공하고있다.