我正在尝试了解像1Password这样的应用程序如何在Mac App Store中加入Safari扩展程序(最重要的是,扩展程序如何与应用程序通信)因为我喜欢做同样的事。 本机应用程序是否运行服务器作为由safari扩展调用的子进程?
我想知道是否可以这样做,仍然是Mac App Store + Sandboxing友好。
答案 0 :(得分:4)
1Password使用代理在Mac App和Safari Extension之间进行通信。代理很可能是一个小型服务器进程,可以从扩展接收RESTful调用。此机制允许所有不同扩展(Safari,Chrome,Firefox等),客户端和主数据库之间的同步。
顺便说一句,1Password应用程序不再直接安装Safari扩展程序。相反,您将被定向到包含Safari扩展程序下载的网页,从而使应用程序对沙箱友好。
答案 1 :(得分:0)
我认为这是一个常规.app
,其内部有一个Safari扩展作为资源。
应用程序将在应用程序启动时检查Safari扩展程序是否存在,如果在默认位置找不到它,它将提示用户安装它。如果用户选择安装它,则应用程序会将扩展名复制到Safari扩展文件夹。