2016-11-20 7 views
1

Hy everyone。iPadのiOSアプリのUserAgentを変更する

私はWKWebViewを使用するモバイルアプリを作っています。

iPhoneでいくつかのサイトを読み込むと、モバイルサイトが返されますが、iPadでサイトを読み込もうとすると、デスクトップサイトが要求され、デスクトップとモバイルサイトを切り替えるボタンを作成します。

は私が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" 

あなたは、私はiPhoneのuserAgentを使用するアプリでWebViewのを強制しようとするが、それは一部のデスクトップサイトを要求し続ける見ることができますように。

皆さんに私のコードをもっと必要としていただければ、喜んで提供します。

ありがとうございました!

答えて

0

あなたは、このようなあなたのWebViewをサブクラス化しようとすることができます:最初のユーザーエージェントを変更することhttps://stackoverflow.com/a/37474812/2579725

この回答で提案されているような

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) 
    } 
} 

。私の研究は私にそれを行うには、この方法がWKWebViewでは不可能であるという結果を与えている

-(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; 
} 

:私はすべての要求のためにそれを上書きするのUIWebViewでやったことは、このでした。

関連する問題