Android WebView कुकी समस्या


89

मेरे पास एक सर्वर है जो प्रमाणीकृत संचार के लिए उपयोग किए जाने के लिए मेरे एंड्रॉइड ऐप को एक सत्र कुकी भेजता है। मैं उसी सर्वर की ओर इशारा करते हुए URL के साथ एक WebView लोड करने का प्रयास कर रहा हूं और मैं प्रमाणीकरण के लिए सत्र कुकी में पास होने की कोशिश कर रहा हूं। मैं देख रहा हूँ कि यह रुक-रुक कर काम करता है लेकिन मुझे पता नहीं क्यों। मैं अपने सर्वर पर अन्य कॉल करने के लिए एक ही सत्र कुकी का उपयोग करता हूं और ये कभी भी प्रमाणीकरण विफल नहीं होते हैं। मैं केवल इस समस्या का अवलोकन करता हूं जब किसी WebView में URL लोड करने का प्रयास किया जाता है, और यह हर बार नहीं होता है। अधिक निराश।

नीचे वह कोड है जो मैं यह करने के लिए उपयोग कर रहा हूं। किसी भी प्रकार की सहायता सराहनीय होगी।

String myUrl = ""http://mydomain.com/"; 
CookieSyncManager.createInstance(this); 
CookieManager cookieManager = CookieManager.getInstance(); 
Cookie sessionCookie =  getCookie(); 
if(sessionCookie != null){ 
    String cookieString = sessionCookie.getName() +"="+sessionCookie.getValue()+"; domain="+sessionCookie.getDomain(); 
    cookieManager.setCookie(myUrl, cookieString); 
    CookieSyncManager.getInstance().sync(); 
} 

WebView webView = (WebView) findViewById(R.id.webview); 
webView.getSettings().setBuiltInZoomControls(true); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.setWebViewClient(new MyWebViewClient()); 
webView.loadUrl(myUrl);

इस सवाल का उल्लेख करें stackoverflow.com/questions/2566485/…
neeraj t

जवाबों:


55

धन्यवाद justingrammens ! मेरे लिए काम किया, मैं अपने DefaultHttpClient अनुरोधों और WebView गतिविधि के भीतर कुकी साझा करने में कामयाब रहा:

//------- Native request activity
private DefaultHttpClient httpClient;
public static Cookie cookie = null;

//After Login
List<Cookie> cookies = httpClient.getCookieStore().getCookies();
for (int i = 0; i < cookies.size(); i++) {
    cookie = cookies.get(i);
}

//------- Web Browser activity
Cookie sessionCookie = myapp.cookie;
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
if (sessionCookie != null) {
    cookieManager.removeSessionCookie();
    String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "; domain=" + sessionCookie.getDomain();
    cookieManager.setCookie(myapp.domain, cookieString);
    CookieSyncManager.getInstance().sync();
}   

यह मेरे लिए बहुत अच्छा काम किया। मैंने अपनी कुकी url का निर्माण इस प्रकार किया: String url = (cookie.isSecure (); "https": "http") + ": //" + कुकी.getDomain () + cookie.getPath ();
हीथ बॉर्डर

पोस्ट के लिए धन्यवाद ... इसने मेरे ऐप के लिए ट्विटर लॉगआउट को लागू करने में मेरी मदद की ...;)
राहुल

क्या आप बता सकते हैं कि myapp.cookie की जगह क्या लिखा जा सकता है
suraj jain

कीवर्ड है: स्ट्रिंग कुकीस्ट्रीमिंग = sessionCookie.getName () + "=" + sessionCookie.getValue () + "; डोमेन =" + sessionCookie.getDomain (); cookieManager.setCookie (myapp.domain, cookieString);
ज़ेनिचीमारो

1
CookieSyncManager को अब पदावनत कर दिया गया है :(
मिशा

18

मेरे रविवार को बर्बाद करने के लिए धन्यवाद एंड्रॉइड। । । Heres ने मेरे ऐप्स को निर्धारित किया (आपके वेबव्यू के बाद)

if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ) {

  CookieManager cookieManager = CookieManager.getInstance();

  cookieManager.setAcceptThirdPartyCookies( webView, true );

}

मुझे कहना चाहिए कि उपरोक्त उत्तर शायद काम करेंगे लेकिन मेरी स्थिति में एंड्रॉइड v5 + चला गया मेरे एंड्रॉइड वेबव्यू जावास्क्रिप्ट 'ऐप्स' की मृत्यु हो गई।


1
ओह! आपने अभी मेरा दिन बचाया है!
ले मिन

14

समाधान: वेबव्यू कुकीसिंक मैनजर

CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(mWebView.getContext());
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
cookieManager.setCookie("http://xx.example.com","mid="+MySession.GetSession().sessionId+" ; Domain=.example.com");
cookieSyncManager.sync();

String cookie = cookieManager.getCookie("http://xx.example.com");

Log.d(LOGTAG, "cookie ------>"+cookie);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new TuWebViewClient());
mWebView.loadUrl("http://xx.example.com");

आपको क्या मिलता है cookie, मुझे केवल इतना पसंद है: PHPSESSID=ljfakdjfklasdfajक्या यह पर्याप्त है?
फ्रांसिस्को कॉर्लेस मोरेल्स

6
यहाँ MySession क्या है?
उपयोगकर्ता 3


3

मैं उस सत्र कुकी को वरीयता के रूप में सहेजता और उसके साथ कुकी प्रबंधक को बलपूर्वक हटा देता। यह लगता है कि सत्र कुकी जीवित नहीं गतिविधि पुनरारंभ


मुझे यह जोड़ना चाहिए कि मेरा ऐप मेरे सर्वर कॉल पर कई अन्य गैर-वेबदृश्य बनाता है जो प्रमाणीकरण को कभी विफल नहीं करते हैं। केवल जब मैं WebView में URL लोड करने का प्रयास करता हूं तो क्या मैं इस समस्या को देखता हूं। "कुकी सेशन कूकी = getCookie ();" मैं अपने सर्वर के साथ सभी संदेशों के लिए उपयोग किए जाने वाले सत्र कुकी ऐप के DB से पुनर्प्राप्त कर रहा हूं।
नैननरपस

आप यह अपने आप कुकी की दुकान है कि, इसलिए यदि आप ग्राहक अपने कुकी बच जाएगा की एक उदाहरण के लिए पकड़ के लिए HttpClient उपयोग कर रहे हैं, लेकिन यह आपके वेब दृश्य द्वारा प्रयोग किया जाता के साथ कुछ नहीं हो सकता है अच्छी तरह से करता है, तो
Bostone

अगर मैं आपको सही तरीके से समझता हूं, तो आप कह रहे हैं कि CookieManager, CookieManager.getInstance () द्वारा लौटा है; HttpClient के उदाहरणों द्वारा उपयोग की जाने वाली कुकीज़ को प्रभावित करेगा, जो कि WebViews उपयोग नहीं करते हैं। यदि यह सच है, तो क्या आप जानते हैं कि मैं वेबव्यू में कुकीज़ कैसे स्पष्ट रूप से पारित कर सकता हूं? इसके अलावा, CookieManager डॉक्स को देखते हुए, शायद "cookieManager.setAcceptCookie (सच)" न कहने से मुझे परेशानी हो रही है? मदद के लिए धन्यवाद, वास्तव में इसकी सराहना करते हैं।
नैननरपस

3

मैंने 3 घंटे के आधे से अधिक समय इसी तरह के मुद्दे पर काम करने में बिताया है। मेरे मामले में मेरे पास कई कॉल थे, जिन्हें मैंने एक वेब सेवा का उपयोग करके बनाया DefaulHttpClientथा और तब मैं अपने सभी सत्रों और सत्रों को सेट करना चाहता थाWebView

मुझे नहीं पता कि यह आपकी समस्या का समाधान करेगा, क्योंकि मुझे नहीं पता कि आपकी getCookie()विधि क्या करती है, लेकिन मेरे मामले में मुझे वास्तव में कॉल करना था।

cookieManager.removeSessionCookie();

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


क्यों नहीं CookieManager.getInstance().removeAllCookie ();?
फ्रांसिस्को कोरलस मोरेल्स

2

कुछ समय के शोध के बाद मैंने कुछ टुकड़े इकट्ठे किए हैं जिससे मुझे इसका समाधान मिल गया। एक बार जब कुकीसुम्नमैन को पदावनत कर दिया जाता है, तो आजकल कोटलिन में एक वेब के लिए एक विशिष्ट कुकी सेट करने का यह सबसे अच्छा तरीका हो सकता है, आपको किसी और चीज की आवश्यकता नहीं होनी चाहिए।

private fun setCookie(){
    val webView = WebView(this) // this = context
    val cookieManager = CookieManager.getInstance()
    cookieManager.acceptCookie()

    val domain = "https://www.yourdomain.com/"

    webView.webViewClient = WebViewClient()
    webView.settings.javaScriptEnabled = true

    cookieManager.setCookie(domain,"$cookieKey=$cookieValue")
    cookieManager.setAcceptThirdPartyCookies(webView, true)

    webView.loadUrl(domain)
}

1

मेरा यहाँ अन्य लोगों से एक अलग दृष्टिकोण है, और यह एक दृष्टिकोण है जो कि कुकीस्यूकेमनेगर (जहाँ आप "नोट कि सिंक भी () असिंक्रोनस रूप से होता है)" जैसे शब्दार्थ की दया पर काम करने की गारंटी के बिना काम की गारंटी है।

अनिवार्य रूप से, हम सही डोमेन के लिए ब्राउज़ करते हैं, फिर हम उस डोमेन के लिए कुकीज़ सेट करने के लिए पृष्ठ के संदर्भ से जावास्क्रिप्ट निष्पादित करते हैं (उसी तरह पेज स्वयं होगा)। इस विधि में दो कमियां हैं कि अतिरिक्त http अनुरोध के कारण आपको एक अतिरिक्त गोल यात्रा समय मिल सकता है; और यदि आपकी साइट में एक रिक्त पृष्ठ के बराबर नहीं है, तो यह आपको सही जगह पर ले जाने से पहले जो भी URL लोड करता है, उसे फ्लैश कर सकता है।

import org.apache.commons.lang.StringEscapeUtils;
import org.apache.http.cookie.Cookie;
import android.annotation.SuppressLint;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class WebViewFragment {
    private static final String BLANK_PAGE = "/blank.html"

    private CookieSyncManager mSyncManager;
    private CookieManager mCookieManager;

    private String mTargetUrl;
    private boolean mInitializedCookies;
    private List<Cookie> mAllCookies;

    public WebViewFragment(Context ctx) {
        // We are still required to create an instance of Cookie/SyncManager.
        mSyncManager = CookieSyncManager.createInstance(ctx);
        mCookieManager = CookieManager.getInstance();
    }

    @SuppressLint("SetJavaScriptEnabled") public void loadWebView(
                String url, List<Cookie> cookies, String domain) {
        final WebView webView = ...

        webView.setWebViewClient(new CookeWebViewClient());
        webView.getSettings().setJavaScriptEnabled(true);

        mInitializedCookies = false;
        mTargetUrl = url;
        mAllCookies = cookies;
        // This is where the hack starts.
        // Instead of loading the url, we load a blank page.
        webView.loadUrl("http://" + domain + BLANK_PAGE);
    }

    public static String buildCookieString(final Cookie cookie) {
        // You may want to add the secure flag for https:
        // + "; secure"
        // In case you wish to convert session cookies to have an expiration:
        // + "; expires=Thu, 01-Jan-2037 00:00:10 GMT"
        // Note that you cannot set the HttpOnly flag as we are using
        // javascript to set the cookies.
        return cookie.getName() + "=" + cookie.getValue()
                    + "; path=" + cookie.getPath()
                    + "; domain=" + cookie.getDomain()
    };

    public synchronized String generateCookieJavascript() {
        StringBuilder javascriptCode = new StringBuilder();
        javascriptCode.append("javascript:(function(){");
        for (final Cookie cookie : mAllCookies) {
            String cookieString = buildCookieString(cookie);
            javascriptCode.append("document.cookie=\"");
            javascriptCode.append(
                     StringEscapeUtils.escapeJavascriptString(cookieString));
            javascriptCode.append("\";");
        }
        // We use javascript to load the next url because we do not
        // receive an onPageFinished event when this code finishes.
        javascriptCode.append("document.location=\"");
        javascriptCode.append(
                StringEscapeUtils.escapeJavascriptString(mTargetUrl));
        javascriptCode.append("\";})();");
        return javascriptCode.toString();
    }

    private class CookieWebViewClient extends WebViewClient {
        @Override public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            if (!mInitializedCookies) {
                mInitializedCookies = true;
                // Run our javascript code now that the temp page is loaded.
                view.loadUrl(generateCookieJavascript());
                return;
            }
        }
    }
}

यदि आप विश्वास करते हैं कि जिस डोमेन से कुकीज़ हैं, तो आप अपाचे कॉमन्स के बिना दूर जाने में सक्षम हो सकते हैं, लेकिन आपको यह समझना होगा कि यदि आप सावधान नहीं हैं तो यह एक्सएसएस जोखिम पेश कर सकता है।


1

यह कोड का एक कार्यशील बिट है।

    private void setCookie(DefaultHttpClient httpClient, String url) {
    List<Cookie> cookies = httpClient.getCookieStore().getCookies();
    if (cookies != null) {
        CookieSyncManager.createInstance(context);
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);

        for (int i = 0; i < cookies.size(); i++) {
            Cookie cookie = cookies.get(i);
            String cookieString = cookie.getName() + "=" + cookie.getValue();
            cookieManager.setCookie(url, cookieString);
        }
        CookieSyncManager.getInstance().sync();
    }
}

यहाँ httpclient DefaultHttpClient ऑब्जेक्ट है जिसे आपने HttpGet / HttpPost अनुरोध में उपयोग किया है। यह भी सुनिश्चित करने के लिए एक चीज कुकी नाम और मूल्य है, इसे दिया जाना चाहिए

String cookieString = cookie.getName() + "=" + cookie.getValue();

setCookie दिए गए URL के लिए कुकी सेट करेगा।


सिर्फ एक नोट के रूप में: आप कुकी कुकी का उपयोग करके सत्र कुकीज़ को स्टोर नहीं कर सकते हैं
जॉन डो

मुझे नहीं मिला ... क्या आप समझा सकते हैं?
Droid का बच्चा

1

मैंने अपनी सभी कुकी समस्याओं को ऑन लाइन क्रिएट में इस एक लाइन के साथ हल किया:

CookieHandler.setDefault(new CookieManager());

संपादित करें: इसने आज काम करना बंद कर दिया। :( क्या बकवास है, Android।


तो, किसी भी अद्यतन? आपने काम करना क्यों बंद कर दिया, क्या आपने इसे हल किया?
फ्रांसिस्को कॉर्लेस मोरेल्स

1

इसका भी सामना किया। यहाँ मैंने क्या किया है।

मेरे लॉगिन पर, मेरे AsyncTask के अंदर, मेरे पास निम्नलिखित हैं:

CookieStoreHelper.cookieStore = new BasicCookieStore();
BasicHttpContext localContext = new BasicHttpContext();
localContext.setAttribute(ClientContext.COOKIE_STORE, CookieStoreHelper.cookieStore);

HttpResponse postResponse = client.execute(httpPost,localContext);
CookieStoreHelper.sessionCookie = CookieStoreHelper.cookieStore.getCookies();

// कुकीजस्टोरहेलर.सेशन कूकरी एक अन्य वर्ग है जिसमें लिस्ट कुकीज के रूप में परिभाषित चर सत्र कैकेयी है; और CookieStore को BasicCookieStore कुकी के रूप में परिभाषित करता है;

फिर मेरे टुकड़े पर, जहां मेरा वेबव्यू स्थित है, मेरे पास निम्नलिखित हैं:

//DECLARE LIST OF COOKIE
List<Cookie> sessionCookie;

मेरे द्वारा या आपके द्वारा WebViewClient () सेट करने से ठीक पहले

WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

sessionCookie = CookieStoreHelper.cookieStore.getCookies();
CookieSyncManager.createInstance(webView.getContext());
CookieSyncManager.getInstance().startSync();
CookieManager cookieManager = CookieManager.getInstance();
CookieManager.getInstance().setAcceptCookie(true);
if (sessionCookie != null) {
   for(Cookie c:  sessionCookie){
      cookieManager.setCookie(CookieStoreHelper.DOMAIN, c.getName() + "=" + c.getValue());
   }
   CookieSyncManager.getInstance().sync();

 }

 webView.setWebViewClient(new WebViewClient() {
    //AND SO ON, YOUR CODE
 }

क्विक टिप: फ़ायरफ़ॉक्स पर फ़ायरबग स्थापित किया गया है या क्रोम पर डेवलपर कंसोल का उपयोग करें और पहले अपने वेबपेज का परीक्षण करें, कुकी पर कब्जा करें और डोमेन की जांच करें ताकि आप इसे कहीं स्टोर कर सकें और सुनिश्चित करें कि आप सही डोमेन सेट कर रहे हैं।

संपादित करें: CookieStoreHelper.cookies से CookieStoreHelper.sessionCookie का संपादन किया


1

मेरा काम कोड

public View onCreateView(...){
    mWebView = (WebView) view.findViewById(R.id.webview);

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

        ...
        ...
        ...

    CookieSyncManager.createInstance(mWebView.getContext());
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    //cookieManager.removeSessionCookie(); // remove
    cookieManager.removeAllCookie(); //remove
    // Recommended "hack" with a delay between the removal and the installation of "Cookies"
    SystemClock.sleep(1000);

    cookieManager.setCookie("https://my.app.site.com/", "cookiename=" + value + "; path=/registration" + "; secure"); // ;
    CookieSyncManager.getInstance().sync();

    mWebView.loadUrl(sp.getString("url", "") + end_url);

    return view;
}

क्वेरी डिबग करने के लिए, "cookieManager.setCookie (....);" मैं आपको डेटाबेस webviewCookiesChromium.db की सामग्री ("/data/data/my.app.webview/database" में संग्रहीत) के माध्यम से देखने की सलाह देता हूं। वहां आप सही सेटिंग्स देख सकते हैं।

अक्षम करना "cookieManager.removeSessionCookie ();" और / या "कुकी मैनगेयर .removeAllCookie ();"

//cookieManager.removeSessionCookie();
// and/or
//cookieManager.removeAllCookie();"

ब्राउज़र द्वारा सेट किए गए लोगों के साथ सेट मान की तुलना करें। कुकीज़ के इंस्टॉलेशन के अनुरोध को तब तक समायोजित करें जब तक कि "फ़्लैग" ब्राउज़र स्थापित न हो जाए जो आप तय करते हैं उसके साथ फिट होगा। मैंने पाया कि एक क्वेरी "झंडे" हो सकते हैं:

// You may want to add the secure flag for https:
+ "; secure"
// In case you wish to convert session cookies to have an expiration:
+ "; expires=Thu, 01-Jan-2037 00:00:10 GMT"
// These flags I found in the database:
+ "; path=/registration"
+ "; domain=my.app.site.com"

मैं वेब दृश्य में स्टोर कुकी के लिए उपरोक्त कोड का उपयोग करता हूं, लेकिन कृपया मुझे पथ के बारे में बताएं। यहाँ क्या रास्ता है
मेहुल टैंक

@MehTTank पथ पैरामीटर एक दस्तावेज़ स्थान निर्दिष्ट करता है। कुकी केवल सर्वर को भेजी जाती है यदि पथ वर्तमान या एक मूल दस्तावेज़ स्थान से मेल खाता है।
रोलैंड वैन डेर लिंडन

1

टिप्पणियों की जोड़ी (कम से कम एपीआई के लिए = = 21) जो मैंने अपने अनुभव से पाया और मुझे सिरदर्द दिया:

  1. httpऔर httpsयूआरएल अलग हैं। के लिए कुकी सेट करना किसी कुकी के http://www.example.comसेट करने से अलग हैhttps://www.example.com
  2. यूआरएल के अंत में एक स्लैश भी एक अंतर बना सकता है। मेरे मामले में https://www.example.com/काम करता है लेकिन https://www.example.comकाम नहीं करता है।
  3. CookieManager.getInstance().setCookieएक अतुल्यकालिक ऑपरेशन कर रहा है। इसलिए, यदि आप इसे सेट करने के तुरंत बाद एक url लोड करते हैं, तो यह गारंटी नहीं है कि कुकीज़ पहले ही लिखी जा चुकी होंगी। अप्रत्याशित और अस्थिर व्यवहार को रोकने के लिए, CookieManager # setCookie (स्ट्रिंग url, स्ट्रिंग वैल्यू, ValueCallback कॉलबैक) ( लिंक ) का उपयोग करें और कॉलबैक के बाद url लोड करना शुरू करें।

मुझे आशा है कि मेरे दो सेंट कुछ लोगों से कुछ समय बचाते हैं, इसलिए आपको उसी समस्याओं का सामना नहीं करना पड़ेगा जैसे मैंने किया था।


कैसे अलग के लिए एक कुकी सेट करना है example.com के लिए एक कुकी सेट से अलग है example.com ?
सॉफ्टमार्शमेलो

0

मुझे एक ही समस्या का सामना करना पड़ा है और यह सभी एंड्रॉइड संस्करणों में इस मुद्दे को हल करेगा

private void setCookie() {
    try {
        CookieSyncManager.createInstance(context);
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            cookieManager.setCookie(Constant.BASE_URL, getCookie(), value -> {
                String cookie = cookieManager.getCookie(Constant.BASE_URL);
                CookieManager.getInstance().flush();
                CustomLog.d("cookie", "cookie ------>" + cookie);
                setupWebView();
            });
        } else {
            cookieManager.setCookie(webUrl, getCookie());
            new Handler().postDelayed(this::setupWebView, 700);
            CookieSyncManager.getInstance().sync();
        }

    } catch (Exception e) {
        CustomLog.e(e);
    }
}

0

ध्यान दें कि यह सामान्य URL के बजाय उप-डोमेन का बेहतर उपयोग कर सकता है। इसलिए, .example.comइसके बजाय सेट करें https://example.com/

जोडी जैकबस गेयर्स और अन्य लोगों के लिए धन्यवाद जो मैंने लिखा है:

if (savedInstanceState == null) {
    val cookieManager = CookieManager.getInstance()
    cookieManager.acceptCookie()
    val domain = ".example.com"
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        cookieManager.setCookie(domain, "token=$token") {
            view.webView.loadUrl(url)
        }
        cookieManager.setAcceptThirdPartyCookies(view.webView, true)
    } else {
        cookieManager.setCookie(domain, "token=$token")
        view.webView.loadUrl(url)
    }
} else {
    // Check whether we're recreating a previously destroyed instance.
    view.webView.restoreState(savedInstanceState)
}

-4

अपने कच्चे url का उपयोग न करें

के बजाय:

cookieManager.setCookie(myUrl, cookieString); 

इसे इस तरह उपयोग करें:

cookieManager.setCookie("your url host", cookieString); 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.