#cocoa #safari-extension #mac-app-store #sandbox
#cocoa #safari-расширение #mac-app-store #песочница
Вопрос:
Я пытаюсь понять, как приложение, подобное 1Password, может находиться в Mac App Store и иметь расширение Safari (и, самое главное, как расширение может взаимодействовать с приложением), потому что я хотел бы сделать то же самое. Работает ли собственное приложение на сервере как подпроцесс, который вызывается расширением Safari?
Я хотел бы знать, возможно ли это сделать и при этом оставаться дружественным к Mac App Store песочнице.
Ответ №1:
1Password использует агент для обмена данными между приложением Mac и расширением Safari. Агент, скорее всего, представляет собой небольшой серверный процесс, который может получать вызовы RESTful с добавочных номеров. Этот механизм обеспечивает синхронизацию между всеми различными расширениями (Safari, Chrome, Firefox и т. Д.), Клиентом и основной базой данных.
Кстати, расширение Safari больше не устанавливается непосредственно приложением 1Password. Вместо этого вы будете перенаправлены на веб-страницу, содержащую загруженное расширение Safari, что делает приложение удобным для изолированной среды.
Ответ №2:
Я считаю .app
, что это обычное приложение, внутри которого в качестве ресурса находится расширение Safari.
Приложение проверит наличие расширения Safari при запуске приложения и, если оно не найдет его в расположениях по умолчанию, предложит пользователю установить его. Если пользователи решат установить его, приложение скопирует расширения в папку расширений Safari.
Комментарии:
1. Да, это я понимаю, но как они общаются? И это определенно неприемлемо теперь, когда мы должны изолировать наши приложения.
2. Ах, извините, вопрос не был ясен для меня в этом отношении. В документах Safari достаточно ясно указано, что может делать расширение. На самом деле расширения Safari — это папки, если я правильно помню, поэтому вы должны иметь возможность проверить источник.