2015年11月16日月曜日

XcodeでCocoa, Swiftを勉強 Swift2.1でMac OSX SafariのCookieを取得する

Swift1.0の時は
let cookies:[NSHTTPCookie] = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies as [NSHTTPCookie]
for cookie:NSHTTPCookie in cookies as [NSHTTPCookie] {
    //処理
}
てな感じでさくっとCookie取得できたような気がするんですが、Xcode7からなのか、Swift2だからなのか、Safari9の所為なのか、El Capitanが変えてしまったのかわからないのだけど、上記の方法では取得できなくなった。取得したcookieは空。

試行錯誤の結果、次の方法で取れた。このやり方が正解なのか知らんけど。



Xcode7.1.1で確認済
let cookies = NSHTTPCookieStorage.sharedCookieStorageForGroupContainerIdentifier(
            "Cookies")
for cookie in cookies.cookies! {
    //処理
}
例えば次の方法でニコニコのセッションが表示される。
let cookies = NSHTTPCookieStorage.sharedCookieStorageForGroupContainerIdentifier(
            "Cookies")
for cookie in cookies.cookies! {
    if( (cookie.domain == ".nicovideo.jp") && (cookie.name == "user_session") ) {
        print(cookie.value)
    }
}
ネットで情報探してもしてもiOSの話ばっかりでOSXな私は寂しいです。

0 件のコメント:

コメントを投稿