2013-04-23 292 views
5

我正在嘗試執行以下操作:在我的appDelegate中設置cookie。之後,我試圖從webapp中使用JavaScript讀取該cookie。這可能嗎?因爲我不能讓它工作...在iOS應用程序中設置Cookie並從Safari中讀取該Cookie

這是我在iOS應用代碼:

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

而且在我的JavaScript我使用讀寫餅乾jquery.cookie插件。但是,無所不有。這是我的代碼:

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

警報在體內「的翻譯:」有應該是「是」值我在我的應用程序設置。

你們認爲這是可能的嗎?

謝謝!

回答

6

不可能:第三方應用程序無法訪問全局Safari cookie緩存,因爲這將是一個重大的安全漏洞。如果您需要將Cookie信息發送到Safari,則最好在Safari中啓動一個URL,並將cookie的詳細信息作爲請求參數,然後在該URL的末尾創建腳本並將其發回。

編輯:如果你想變得光滑,你可以爲你的iOS應用程序註冊一個URL處理程序,然後啓動你的網絡應用程序的URL。讓您的網絡應用程序設置Cookie,然後重定向迴應用程序URL。

相關問題