2013-04-23 16 views
5

Ich versuche, Folgendes zu tun: In meiner AppDelegate setze ich einen Cookie. Danach versuche ich diesen Cookie mit JavaScript von einer Webapp zu lesen. Ist das möglich? Weil ich nicht, kann es ... funktioniertLegen Sie ein Cookie in einer iOS-App und lesen Sie dieses Cookie von Safari

Dies ist mein Code in der iOS-App:

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]; 

Und in meinem JavaScript verwende ich das jquery.cookie Plugin zum Schreiben und Lesen von Cookies. Aber nichts ist ... Das ist mein Code:

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

Der Alarm hat im Körper „[object Object]“, und es sollte der „ja“ Wert ich in meiner app gesetzt.

Hältst du das für möglich?

Danke!

Antwort

6

Nicht möglich: Der globale Safari-Cookie-Cache ist für Anwendungen von Drittanbietern nicht zugänglich, da dies eine erhebliche Sicherheitslücke darstellen würde. Wenn Sie Cookie-Informationen an Safari senden möchten, wäre es besser, wenn Sie eine URL in Safari mit den Cookie-Details als Anfrage-Parameter starten und dann das Skript am Ende dieser URL die Cookies erstellen und zurückschicken.

BEARBEITEN: Wenn Sie auf dem neuesten Stand sein möchten, können Sie einen URL-Handler für Ihre iOS-App registrieren und dann die URL zu Ihrer Web-App starten. Lassen Sie die Cookies in Ihrer Web-App festlegen und leiten Sie sie dann zurück zur App-URL.