2013-12-09 12 views
5

मेरी समस्या WebView रीडायरेक्ट और कस्टम कुकीज़ से निपटने के साथ है।Android WebView रीडायरेक्ट में कुकीज़ खोना

मैं निम्नलिखित है:

  1. बनाएं आवेदन में CookieSyncManager और CookieManager के उदाहरण util कक्षा में स्थिर अनुभाग में
  2. बनाने कॉल sCookieManager.setAcceptCookie(true);
  3. कॉल sCookieManager.setCookie(url, value); sCookieSyncManager.sync();
  4. और अंत में mWebView.loadUrl

क सर्वर की ओर से हो रहा है कि यह पहली बार सही कुकी है जिसे मैंने सेट किया है, कुछ रीडायरेक्ट चलाता है और कुकी खो जाती है। कोई विचार, मैं यहाँ क्या गलत कर रहा हूँ?

मैंने setCookie - sync को किसी अन्य थ्रेड में कुछ देरी और फिर loadUrl चलाने की कोशिश की है लेकिन इससे मदद नहीं मिली है।

सभी समान पदों में ऐसे समाधान होते हैं जो काम नहीं कर रहे हैं।

धन्यवाद।

अद्यतन:

मैंने देखा है कि setCookie का उपयोग कर उदाहरण के लिए जैसे कई कुकीज़ देने के लिए:

setCookie("MyCookie=value; Domain=mydomain.com; Path=/; Secure; HttpOnly; MySecondCookie=value2....)" 

केवल पहले एक लागू किया जाता है, और फिर इसे जब सर्वर रन उसके अपने डोमेन पर पुनर्निर्देश चला गया। यह समस्या एक लूप में एक समय में सेटिंग कस्टम कुकीज़ तय की जा सकती है।

मैं अस्थायी रूप से onReceivedSslError में handler.proceed(); जोड़ लिया है और मैं लॉग यह ट्रिगर है कि बस से पहले वेब साइट रीडायरेक्ट और कुकी अगले पृष्ठों onPageFinished पर में खो जाता है से देख सकते हैं, वहाँ सुरक्षित कुकीज़ और अमान्य प्रमाणपत्र श्रृंखलाओं के बीच कुछ संबंध हो सकता है?

+0

मैं का सामना करना पड़ रहा वही मुद्दा ? क्या आपको इसका कोई समाधान मिला? –

उत्तर

0

नहीं

sCookieManager.setCookie(url, value) 

लेकिन

sCookieManager.setCookie(cookieDomain, value) 

cookieDomain आप क्रोम का उपयोग कर उदाहरण के लिए प्राप्त कर सकते हैं का उपयोग करके देखें: // निरीक्षण

कार्य उदाहरण:

String cookieDomain = ".www.drive2.ru"; 
String siteUrl = "https://drive2.ru"; 

webView = (WebView) getView().findViewById(R.id.web_view); 
webView.setWebViewClient(new WebViewClient()); // force open any new url in same webview (whether it is user click or redirect) 

CookieManager cookieManager = CookieManager.getInstance(); 
cookieManager.setAcceptCookie(true); 
cookieManager.setCookie(cookieDomain, "cookieName=cookieValue"); 
webView.loadUrl(siteUrl); 
संबंधित मुद्दे