2015-01-30 7 views
7

मैं W12WebView उदाहरण से सभी कुकीज़ कैसे प्राप्त करूं?WKWebView से कुकीज़ कैसे प्राप्त करें?

यहाँ मैं अब तक की कोशिश की है इस प्रकार हैं:

  • मैं document.cookie मूल्यांकन करने के लिए उपयोग करने की कोशिश - [WKWebView evaluateJavaScript:completionHandler:] - दुर्भाग्य से परिणाम कुकीज़ कि HttpOnly के रूप में चिह्नित नहीं है।

  • Introducing the Modern WebKit API (WWDC 2014 Session 206) के अनुसार, response ऑब्जेक्ट WKNavigation के उदाहरण से प्राप्त करना संभव होना चाहिए। हालांकि, class reference के अनुसार, WKNavigation में कोई सार्वजनिक विधि/संपत्ति नहीं है।

उत्तर

3

के बाद से इस सवाल का एक वर्ष के बाद उत्तर नहीं दिया गया है, मैं अपने अपूर्ण पोस्टिंग रहा हूँ, लेकिन काम कर समाधान:

आप - webView:decidePolicyForNavigationResponse:decisionHandler: विधि में एक NSHTTPURLResponse वस्तु WKNavigationDelegate पर परिभाषित करने के लिए उपयोग कर सकते हैं। बाद में आप HTTP शीर्षलेख से मैन्युअल रूप से कुकीज निकाल सकते हैं:

- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler { 
    NSHTTPURLResponse* response = navigationResponse.response; 
    NSArray *cookies = [NSHTTPCookie cookiesWithResponseHeaderFields:[response allHeaderFields] forURL:[NSURL URLWithString:@""]]; 
    for (NSHTTPCookie *cookie in cookies) { 
     // Do something with the cookie 
    } 

    decisionHandler(WKNavigationResponsePolicyAllow); 
} 

यदि आपके पास बेहतर है तो कृपया अपना समाधान पोस्ट करें।

+0

लेकिन मुझे पता चला कि कुछ यूआरएल इस कॉलबैक को कॉल नहीं करेंगे। जैसे जबकि POST अनुरोध। – brain

+0

हाँ कई यूआरएल इस कॉल को वापस कॉल नहीं करते हैं उदा। सबमिट या POST अनुरोध – ShivaPrasad

+0

अच्छा है! Bu "newCookies" स्थिरता के लिए "कुकीज़" होना चाहिए। –

संबंधित मुद्दे