2013-04-23 13 views
5

Aşağıdakileri yapmaya çalışıyorum: Uygulamamın içindeDelegate Bir çerez ayarlıyorum. Bundan sonra, bu çerezi web sunucusundan JavaScript kullanarak okumaya çalışıyorum. Mümkün mü? Ben ... işeBir iOS uygulamasında bir çerez ayarlayın ve bu çerezi Safari'den okuyabilirsiniz

yapamaz çünkü bu iOS uygulamasında benim kodudur:

NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary]; 
[cookieProperties setObject:@"test" forKey:NSHTTPCookieName]; 
[cookieProperties setObject:@"yes" forKey:NSHTTPCookieValue]; 
[cookieProperties setObject:self.siteURL forKey:NSHTTPCookieDomain]; 
[cookieProperties setObject:self.siteURL forKey:NSHTTPCookieOriginURL]; 
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath]; 
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion]; 

[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:9629743] forKey:NSHTTPCookieExpires]; 

NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties]; 
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; 

Ve JavaScript ben yazma ve okuma çerezler için jquery.cookie eklentisi kullanıyorum

. Ama hiçbir şey yoktur ... Bu benim kodudur:

cookieValue = $.cookie("test"); 
alert(cookieValue); 

uyarı vücudun "[object Object]" sahip olduğu ve benim app set "evet" değer olmalıdır.

Bunun mümkün olduğunu düşünüyor musunuz?

Teşekkürler!

cevap

6

Mümkün değil: Global Safari tanımlama bilgisi önbelleği, üçüncü taraf uygulamalarda erişilebilir değildir, çünkü bu önemli bir güvenlik açığı olacaktır. Çerez bilgilerini Safari'ye göndermeniz gerekiyorsa, çerez parametrelerinin istek parametrelerini kullanarak Safari'de bir URL'yi daha iyi yayınlamanız ve ardından söz konusu URL'nin sonunda komut dosyasının oluşturulması çerezleri oluşturup geri göndermenizi sağlar.

DÜZENLEME: Kaygan olmak istiyorsanız iOS uygulamanız için bir URL işleyici kaydedebilir ve ardından web uygulamanıza URL'yi başlatabilirsiniz. Web uygulamanızın çerezleri ayarlamasını sağlayın, ardından uygulama URL'sine yeniden yönlendirin.