我试图了解1Password之类的应用程序如何出现在 Mac App Store 上并附带 Safari 扩展程序(最重要的是,扩展程序如何与应用程序通信),因为我也想做同样的事情。本机应用程序是否将服务器作为 safari 扩展调用的子进程运行?
我想知道是否有可能做到这一点并且仍然对 Mac App Store + Sandboxing 友好。
我试图了解1Password之类的应用程序如何出现在 Mac App Store 上并附带 Safari 扩展程序(最重要的是,扩展程序如何与应用程序通信),因为我也想做同样的事情。本机应用程序是否将服务器作为 safari 扩展调用的子进程运行?
我想知道是否有可能做到这一点并且仍然对 Mac App Store + Sandboxing 友好。
1Password 使用代理在 Mac 应用程序和 Safari 扩展程序之间进行通信。代理很可能是一个小型服务器进程,可以接收来自扩展的 RESTful 调用。这种机制允许在所有不同的扩展(Safari、Chrome、Firefox 等)、客户端和主数据库之间进行同步。
顺便说一句,Safari 扩展程序不再由 1Password 应用程序直接安装。相反,您会被定向到包含 Safari 扩展程序下载的网页,从而使应用程序沙盒友好。
我相信这是一个常规.app
,其中有一个 Safari 扩展作为资源。
该应用程序将在应用程序启动时检查是否存在 Safari 扩展程序,如果在默认位置找不到它,它将提示用户安装它。如果用户选择安装它,应用程序会将扩展复制到 Safari 扩展文件夹。