Ios 将请求标头添加到WKWebView中的所有传出请求
TL;DR:我有一个iOS(Swift)项目,带有WKWebView。我想在此WKWebView中向所有传出请求(html、图像、脚本、样式表等)添加请求头。我不知道怎么做 背景:Ios 将请求标头添加到WKWebView中的所有传出请求,ios,swift,header,request,wkwebview,Ios,Swift,Header,Request,Wkwebview,TL;DR:我有一个iOS(Swift)项目,带有WKWebView。我想在此WKWebView中向所有传出请求(html、图像、脚本、样式表等)添加请求头。我不知道怎么做 背景: 我有一个Swift iOS应用程序,它使用WKWebView呈现html视图。这些视图托管在我们的服务器上,服务器分为生产环境和暂存环境。我已经使用Akamai设置了登台环境,以便所有传入的请求都必须传递一个请求头才能被接受 问题: 目前,我创建了WKWebView的一个子类,它覆盖loadRequest方法,如下所
我有一个Swift iOS应用程序,它使用WKWebView呈现html视图。这些视图托管在我们的服务器上,服务器分为生产环境和暂存环境。我已经使用Akamai设置了登台环境,以便所有传入的请求都必须传递一个请求头才能被接受 问题:
目前,我创建了WKWebView的一个子类,它覆盖loadRequest方法,如下所示:
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配合使用。使用当前的API是不可能的-您无法处理WKWebView发出的所有请求。您可以使用
UIWebView
+(WKWebView
不支持它)并将您的头添加到特定服务器的所有请求中作为替代。Bummer。谢谢你的回答!