@@ -61,19 +61,21 @@ - (void)webView:(WKWebView *)webView startURLSchemeTask:(id <WKURLSchemeTask>)ur
61
61
62
62
// set cookies to WKWebView
63
63
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
64
- NSArray * cookies = [NSHTTPCookie cookiesWithResponseHeaderFields: [httpResponse allHeaderFields ] forURL: response.URL];
65
- [[NSHTTPCookieStorage sharedHTTPCookieStorage ] setCookies: cookies forURL: httpResponse.URL mainDocumentURL: nil ];
66
- cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage ] cookies ];
67
-
68
- for (NSHTTPCookie * c in cookies)
69
- {
70
- dispatch_async (dispatch_get_global_queue ( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0 ), ^(void ){
71
- // running in background thread is necessary because setCookie otherwise fails
72
- dispatch_async (dispatch_get_main_queue (), ^(void ){
73
- [cookieStore setCookie: c completionHandler: nil ];
64
+ if (httpResponse) {
65
+ NSArray * cookies = [NSHTTPCookie cookiesWithResponseHeaderFields: [httpResponse allHeaderFields ] forURL: response.URL];
66
+ [[NSHTTPCookieStorage sharedHTTPCookieStorage ] setCookies: cookies forURL: httpResponse.URL mainDocumentURL: nil ];
67
+ cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage ] cookies ];
68
+
69
+ for (NSHTTPCookie * c in cookies)
70
+ {
71
+ dispatch_async (dispatch_get_global_queue ( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0 ), ^(void ){
72
+ // running in background thread is necessary because setCookie otherwise fails
73
+ dispatch_async (dispatch_get_main_queue (), ^(void ){
74
+ [cookieStore setCookie: c completionHandler: nil ];
75
+ });
74
76
});
75
- }) ;
76
- };
77
+ };
78
+ }
77
79
78
80
[urlSchemeTask didReceiveResponse: response];
79
81
[urlSchemeTask didReceiveData: data];
0 commit comments