以编程方式将 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 的站点。
- 还有其他方法可以做到这一点吗?
- 如何使用 AppleScript 静默启动 Safari 并导航到 url?
- 如何以编程方式将所述 AppleScript 注册到
启动时启动。
我主要是一名 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
要求:
在 Mac 上,启动时将 Safari 中的 cookie 写入特定域。
到目前为止我能想到的选项是。
1. Safari 的 cookie 文件
启动时,将 cookie 直接写入位于 ~/Library/Cookies/Cookies.binarycookies
的 Safari 二进制文件。但是,我不知道这是否可行,也找不到任何文档。我不愿意尝试这个,因为文件有校验和。
2。获取 Safari 进行设置
启动时,使用 AppleScript,启动 Safari silently/hidden 并导航到设置 cookie 的站点。
- 还有其他方法可以做到这一点吗?
- 如何使用 AppleScript 静默启动 Safari 并导航到 url?
- 如何以编程方式将所述 AppleScript 注册到 启动时启动。
我主要是一名 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