WKNavigationResponse allHeaderFields does not contain JSESSIONID on iOS 12
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I use WKWebView to handle login process of my application. I need to sync cookies between WKWebView and HTTCookieStorage.
After each navigation response, I've migrated JSESSIONID cookie from WKWebView to HTTPCookieStorage. My code works on simulator and iOS 11 devices. But on iOS 12 devices, allHeaderFields does not contain JSESSIONID cookie. I cannot see JSESSIONID cookie anywhere on navigationResponse object on iOS 12 device, while the object contains JSESSIONID on iOS 11 devices. Server response to both devices are similar.
Is there any reason and solution for this problem?
public func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
//Migrate web cookies to native for WKWebView
if let httpResponse = navigationResponse.response as? HTTPURLResponse {
if let headerFiles = httpResponse.allHeaderFields as? [String: String] {
if let url = httpResponse.url {
let cookies = HTTPCookie.cookies(withResponseHeaderFields: headerFiles, for: url)
if (cookies.count > 0) {
HTTPCookieStorage.shared.setCookies(cookies, for: url, mainDocumentURL: url)
}
}
}
}
decisionHandler(.allow)
}
ios wkwebview
add a comment |
I use WKWebView to handle login process of my application. I need to sync cookies between WKWebView and HTTCookieStorage.
After each navigation response, I've migrated JSESSIONID cookie from WKWebView to HTTPCookieStorage. My code works on simulator and iOS 11 devices. But on iOS 12 devices, allHeaderFields does not contain JSESSIONID cookie. I cannot see JSESSIONID cookie anywhere on navigationResponse object on iOS 12 device, while the object contains JSESSIONID on iOS 11 devices. Server response to both devices are similar.
Is there any reason and solution for this problem?
public func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
//Migrate web cookies to native for WKWebView
if let httpResponse = navigationResponse.response as? HTTPURLResponse {
if let headerFiles = httpResponse.allHeaderFields as? [String: String] {
if let url = httpResponse.url {
let cookies = HTTPCookie.cookies(withResponseHeaderFields: headerFiles, for: url)
if (cookies.count > 0) {
HTTPCookieStorage.shared.setCookies(cookies, for: url, mainDocumentURL: url)
}
}
}
}
decisionHandler(.allow)
}
ios wkwebview
I've same problem with wkwebview.
– Karacago
Jan 16 at 6:00
@fthdgn I have the same issue, do you have any progress on this?
– Devrim
Jan 16 at 6:01
1
@Devrim I read cookies from webview instead of response in decidePolicy method. webView.configuration.websiteDataStore.httpCookieStore.getAllCookies()
– fthdgn
Feb 5 at 13:53
add a comment |
I use WKWebView to handle login process of my application. I need to sync cookies between WKWebView and HTTCookieStorage.
After each navigation response, I've migrated JSESSIONID cookie from WKWebView to HTTPCookieStorage. My code works on simulator and iOS 11 devices. But on iOS 12 devices, allHeaderFields does not contain JSESSIONID cookie. I cannot see JSESSIONID cookie anywhere on navigationResponse object on iOS 12 device, while the object contains JSESSIONID on iOS 11 devices. Server response to both devices are similar.
Is there any reason and solution for this problem?
public func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
//Migrate web cookies to native for WKWebView
if let httpResponse = navigationResponse.response as? HTTPURLResponse {
if let headerFiles = httpResponse.allHeaderFields as? [String: String] {
if let url = httpResponse.url {
let cookies = HTTPCookie.cookies(withResponseHeaderFields: headerFiles, for: url)
if (cookies.count > 0) {
HTTPCookieStorage.shared.setCookies(cookies, for: url, mainDocumentURL: url)
}
}
}
}
decisionHandler(.allow)
}
ios wkwebview
I use WKWebView to handle login process of my application. I need to sync cookies between WKWebView and HTTCookieStorage.
After each navigation response, I've migrated JSESSIONID cookie from WKWebView to HTTPCookieStorage. My code works on simulator and iOS 11 devices. But on iOS 12 devices, allHeaderFields does not contain JSESSIONID cookie. I cannot see JSESSIONID cookie anywhere on navigationResponse object on iOS 12 device, while the object contains JSESSIONID on iOS 11 devices. Server response to both devices are similar.
Is there any reason and solution for this problem?
public func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
//Migrate web cookies to native for WKWebView
if let httpResponse = navigationResponse.response as? HTTPURLResponse {
if let headerFiles = httpResponse.allHeaderFields as? [String: String] {
if let url = httpResponse.url {
let cookies = HTTPCookie.cookies(withResponseHeaderFields: headerFiles, for: url)
if (cookies.count > 0) {
HTTPCookieStorage.shared.setCookies(cookies, for: url, mainDocumentURL: url)
}
}
}
}
decisionHandler(.allow)
}
ios wkwebview
ios wkwebview
edited Jan 9 at 6:55
fthdgn
asked Jan 3 at 7:13
fthdgnfthdgn
4741514
4741514
I've same problem with wkwebview.
– Karacago
Jan 16 at 6:00
@fthdgn I have the same issue, do you have any progress on this?
– Devrim
Jan 16 at 6:01
1
@Devrim I read cookies from webview instead of response in decidePolicy method. webView.configuration.websiteDataStore.httpCookieStore.getAllCookies()
– fthdgn
Feb 5 at 13:53
add a comment |
I've same problem with wkwebview.
– Karacago
Jan 16 at 6:00
@fthdgn I have the same issue, do you have any progress on this?
– Devrim
Jan 16 at 6:01
1
@Devrim I read cookies from webview instead of response in decidePolicy method. webView.configuration.websiteDataStore.httpCookieStore.getAllCookies()
– fthdgn
Feb 5 at 13:53
I've same problem with wkwebview.
– Karacago
Jan 16 at 6:00
I've same problem with wkwebview.
– Karacago
Jan 16 at 6:00
@fthdgn I have the same issue, do you have any progress on this?
– Devrim
Jan 16 at 6:01
@fthdgn I have the same issue, do you have any progress on this?
– Devrim
Jan 16 at 6:01
1
1
@Devrim I read cookies from webview instead of response in decidePolicy method. webView.configuration.websiteDataStore.httpCookieStore.getAllCookies()
– fthdgn
Feb 5 at 13:53
@Devrim I read cookies from webview instead of response in decidePolicy method. webView.configuration.websiteDataStore.httpCookieStore.getAllCookies()
– fthdgn
Feb 5 at 13:53
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54017846%2fwknavigationresponse-allheaderfields-does-not-contain-jsessionid-on-ios-12%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54017846%2fwknavigationresponse-allheaderfields-does-not-contain-jsessionid-on-ios-12%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I've same problem with wkwebview.
– Karacago
Jan 16 at 6:00
@fthdgn I have the same issue, do you have any progress on this?
– Devrim
Jan 16 at 6:01
1
@Devrim I read cookies from webview instead of response in decidePolicy method. webView.configuration.websiteDataStore.httpCookieStore.getAllCookies()
– fthdgn
Feb 5 at 13:53