2016-09-16 52 views
3

TL; DR:私はWKWebViewでiOS(Swift)プロジェクトを持っています。このWKWebView内のすべての発信リクエスト(html、画像、スクリプト、スタイルシートなど)にリクエストヘッダを追加したいと思います。私はこれを行う方法を見つけることができません。WKWebView内のすべての発信リクエストにリクエストヘッダを追加

背景:
私はそれは、HTMLビューだレンダリングするWKWebViewを使用スウィフトiOSアプリケーションを持っています。これらのビューは、運用環境とステージング環境に分かれている当社のサーバー上でホストされています。私はAkamaiを使用してステージング環境をセットアップし、すべての着信要求が要求ヘッダーに沿って渡され、要求が受け入れられるようにしました。

問題:
現在、私は次のようになりますloadRequestメソッドをオーバーライドしWKWebViewのサブクラスを作成しました:

override func loadRequest(request: NSURLRequest) -> WKNavigation? { 
    guard let mutableRequest = request.mutableCopy() as? NSMutableURLRequest else { 
     return super.loadRequest(request) 
    } 

    if let url = request.URL, host = url.host { 
     if (host == "staging.example.com") { 
      mutableRequest.setValue("secret-value", forHTTPHeaderField: "secret-header") 
     } 
    } 


    return super.loadRequest(mutableRequest) 
} 

をこれは、ように動作し、最初のhtmlリクエストをキャッチ期待される。しかし、このページでは、同じサーバーから画像、スタイルシート、およびスクリプトの両方がロードされるため、loadRequestメソッドを経由せず、要求にこの要求ヘッダーがないため、拒否されます。

要件:
それはiOSの8+にWKWebViewで動作するようになっています。

答えて

2

現在のAPIでは不可能です - WKWebViewによって行われたすべてのリクエストを処理できるところはありません。 UIWebView + custom url protocolWKWebViewはサポートしていません)を使用して、代替として特定のサーバーのすべての要求にヘッダーを追加できます。

+0

Bummer。答えてくれてありがとう! – Alexander

関連する問題