【问题标题】:Access to Safari bookmarks from another application从其他应用程序访问 Safari 书签
【发布时间】:2012-07-20 11:44:24
【问题描述】:

我想知道我们如何在 Mac OS X 上以一种安全可靠的方式从另一个 Cocoa 应用程序访问 Safari 书签。

您可能知道,检索 Safari 书签的常见机制有两种:

  • 要么读取 Safari 的 Bookmarks.plist 文件
  • 或使用 SyncServices API。

但是,第一个被沙盒禁止(必须通过 App Store 分发),第二个自 Mac OS X 10.7 Lion 以来已被弃用。

我相信 Apple 已弃用 SyncServices 以支持 iCloud 同步,但我找不到任何允许访问书签的 iCloud API (1)。

关于在哪里看的任何提示?本机 Cocoa 是首选,但欢迎任何未弃用的、与沙盒兼容的解决方案。

谢谢。

(1) 而且,老实说,通过互联网(因此需要互联网连接)在一台机器上检索同一台机器上的某些东西似乎......很尴尬 - 但好吧,如果这是至少要走的路那将是一种可能。

【问题讨论】:

  • 你最后做了什么?
  • 哈哈!可能我也会这样做...... :)

标签: macos safari icloud bookmarks syncservices


【解决方案1】:

如果您明确征求用户同意,即使在沙箱中运行,您也可以读出书签 plist 文件:显示一个指向 plist 目录的打开面板,并存储您从中收到的安全范围书签。我这样做了,我的应用并没有因此而被拒绝(但其他事情)。

【讨论】:

  • 哦,这看起来很酷。那么 NSSearchPathForDirectoriesInDomains 仍然适用于沙盒吗?
  • 它将运行,但如果从沙盒应用程序调用,则会返回不同的路径。如果要访问沙箱外的文件,则必须手动分离路径组件并将它们重新组合在一起以创建正确的路径。
  • 嗯,所以它仍然是一种可能会在一夜之间被 Apple 破解的 hack。那么最好使用已弃用的 API,至少我们会提前通知......无论如何感谢您的意见。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多