2013-12-11 18 views
0

在PhoneGap的iOS的建立当我使用带域的document.cookie用于存储会话值我“米不能够做到这一点设置cookie。无法在Phonegap iOS中的document.cookie中设置域名?

它给我空的cookie,当我取回。请您指导我如何与PhoneGap的iOS应用程序域设置的Cookie。

当我尝试设置cookie者无域以其优良的工作。但是,如果没有域名我请求将失败。 我用下面的代码。

document.cookie = "SESSION=" + SESSION +"; path=/; domain=.facebook.com"; 

but when i try below code its working. 

document.cookie = "SMSESSION=" + SMSESSION +"; path=/;"; 

但没有会话我的应用将失败

也试过document.domain,它打破了我的javascript代码。

+0

我不知道'cookie',但存储值也可以使用'local Storage'完成。 http://diveintohtml5.info/storage.html – JunM

回答

0

这是我如何解决我的问题。为了设置cookie,我创建了phonegap插件并使用了本机http客户端。通过本地客户端设置cookie和域后,使用javascript的普通http客户端工作正常。

用于设置Cookie的iOS phonegap插件代码。

NSDictionary *cookieProperties = [NSDictionary dictionaryWithObjectsAndKeys: 
           @".domain.com", NSHTTPCookieDomain, 
           @"/", NSHTTPCookiePath, 
           @"SESSION", NSHTTPCookieName, 
           @"Session value",NSHTTPCookieValue,nil]; 
NSDictionary *cookieProperties1 = [NSDictionary dictionaryWithObjectsAndKeys: 
           @".domain.com", NSHTTPCookieDomain, 
           @"/", NSHTTPCookiePath, 
           @"some cookie", NSHTTPCookieName, 
           @"some cookie value",NSHTTPCookieValue,nil]; 

NSHTTPCookie *cookie1 = [NSHTTPCookie cookieWithProperties:cookieProperties1]; 
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties]; 
NSArray* cookieArray = [NSArray arrayWithObjects: cookie,cookie1, nil]; 
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies:cookieArray forURL:[NSURL URLWithString:urlString] mainDocumentURL:nil]; 

在cookie存储中设置cookie后创建NSURLConnection并执行同步或异步请求。

0

请查看以下网址

Where cookie is managed in phonegap app with jquery?

你必须设置下面的代码在appdelegate.m

NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage 
            sharedHTTPCookieStorage]; 
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; 

和PhoneGap的

var request = { 
      url: my_server_url, 
      success: function(response, status, request) { 
       var header = request.getAllResponseHeaders(); 
       var match = header.match(/(Set-Cookie|set-cookie): (.+?);/); 
       if(match) 
        my_saved_cookie = match[2]; 
      }, 
      } 

if(my_saved_cookie) 
request.headers = { Cookie: my_saved_cookie }; 

$.ajax(request); 

希望这将有助于你

+0

它不是关于检索它。问题是我的应用程序无法使用域设置cookie。 – PremPalanisamy

+0

你能告诉我确切的要求吗?为什么你要为Facebook设置cookie? –

+0

它不适用于Facebook。而不是我使用Facebook的实际域名。它可以是任何域。我想在phonegap iOS应用程序中使用javascript设置会话值并在cookies中做doamin。 – PremPalanisamy