Я использую следующий код для вставки пользовательского заголовка http в мои запросы UIWebView:
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
let headerFields = request.allHTTPHeaderFields
var headerIsPresent = contains(request.allHTTPHeaderFields?.keys.array as [String], "X-Test-App")
if headerIsPresent || navigationType == UIWebViewNavigationType.Other {
return true
} else {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
dispatch_async(dispatch_get_main_queue(), {
let url = request.URL
var newRequest: NSMutableURLRequest = request as NSMutableURLRequest
// set new header
newRequest.addValue("MyValue", forHTTPHeaderField: "X-Test-App")
// reload the request
self.webView.loadRequest(newRequest)
})
})
return false
}
}
Проблема в том, что история кнопки «Назад» не сохраняется. Поэтому, если я нажму на 3 запроса в глубину. При возврате он перейдет только на предыдущую страницу, а затем повторный удар приведет к возврату на страницу, с которой вы только что вернулись. По сути, это бесконечный цикл между двумя последними запросами. Любая идея, как я могу изменить приведенный выше код, чтобы сохранить всю историю веб-поиска и позволить кнопкам «назад/вперед» работать должным образом?