以编程方式将Cookie写入Safari

时间:2015-06-26 14:21:36

标签: cookies safari applescript

要求:

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

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

1。 Safari的cookie文件

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

2。让Safari设置

启动时,使用AppleScript,静默启动/隐藏Safari并导航到设置cookie的网站。

  • 我还有其他办法吗?
  • 我如何使用AppleScript静静地浏览Safari并导航到网址?
  • 如何以编程方式将AppleScript注册到 在启动时启动。

我主要是一名c#windows开发人员,所以我在这里有点不舒服。

1 个答案:

答案 0 :(得分:2)

由于cookie是在OS X上全局共享的,因此您可以使用AppleScript / ObjC这一点来添加网站中的cookie,方法是将网站加载到一个不可见的WebView中,该WebView只在加载完成后才会被释放,以及Cookie已被保存。请注意,您必须从“脚本编辑器”的“文件”菜单中的“从模板新建”菜单中创建“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