以编程方式将 Cookie 写入 Safari

Write Cookie Programmatically to Safari

要求:

在 Mac 上,启动时将 Safari 中的 cookie 写入特定域。

到目前为止我能想到的选项是。

1. Safari 的 cookie 文件

启动时,将 cookie 直接写入位于 ~/Library/Cookies/Cookies.binarycookies 的 Safari 二进制文件。但是,我不知道这是否可行,也找不到任何文档。我不愿意尝试这个,因为文件有校验和。

2。获取 Safari 进行设置

启动时,使用 AppleScript,启动 Safari silently/hidden 并导航到设置 cookie 的站点。

我主要是一名 C# windows 开发人员,所以我有点不适应这里。

由于 cookie 在 OS X 上全局共享,您可以使用这一点 AppleScript/ObjC 通过在不可见的 WebView 中加载网站来从网站添加 cookie,该 WebView 仅发布一次加载完成,cookie 已保存。请注意,您必须从脚本编辑器的文件菜单中的 "New from Template" 菜单创建一个 "Cocoa-AppleScript Applet"。

display alert set_cookies_for_URL("http://www.apple.com")
(* AppleScript's handlers all seem to become unusable after importing frameworks.
 * To compensate, I'm relegating AppleScript/ObjC calls to the end of the file
 *)
use framework "WebKit"

on set_cookies_for_URL(URL)
    set web_view to current application's WebView's alloc()'s initWithFrame:(current application's NSMakeRect(0, 0, 500, 500)) frameName:"tempFrame" groupName:"tempGroup"
    set web_view's mainFrameURL to URL
    #delay to avoid release
    repeat while ((web_view's isLoading) as boolean) is true
        delay 1
    end repeat
    return "done"
end set_cookies_for_URL