我們的客戶要求我們最近從WebView切換到WKWebView。他們的應用程序使用本地登錄,這是通過2 POST調用完成的,並返回各種授權cookie,稍後在整個應用程序中使用每個HTTP/AJAX調用。WKWebView AJAX要求丟失cookies
使用WebView,它可以像魅力一樣工作,無需實現一行自定義代碼。用戶登錄後,cookie默認存儲到cookie存儲,並且WebView始終將它們從那裏拿走並使用它們,因爲HTTPCookieStorage在NSURLSession和WebView之間共享。
這是一個WKWebView的全新故事。一旦我們將WebView切換到WKWebView,我們看到授權不起作用。這是由於在WKWebView中丟失了一些cookie。我們現在從NSURLSession響應中存儲cookie並通過向HTTP請求添加「Cookie」頭來手動將它們附加到WKWebView。
我們能夠以這種方式獲得HTTP調用的授權,但現在我們看到了一個新問題。不知何故,在WKWebView中完成的所有AJAX調用都會丟失授權cookie。
請問知道是否有辦法以某種方式讓授權cookie出現在AJAX調用中?注射JavaScript和
javascriptCookieString = @"document.cookie = 'testCookie=testValue';";
[self.webView evaluateJavaScript:javascriptCookieString completionHandler:nil];
沒有工作,就好像有過任何的Javascript沒有控制調用,因此被執行之前,我不能改變的請求。謝謝。