Как найти / зарегистрировать обработчики схемы URL и типов файлов в macOS? - PullRequest
0 голосов
/ 21 января 2020

Я создаю плагин в Objective- C для стороннего приложения MacOS. Я хочу зарегистрировать и обработать схему URL (например, myscheme://somedatahere) и типы файлов - например, когда пользователь дважды щелкает файл, наш плагин должен быть уведомлен.

Поскольку мой продукт - просто плагин - в стороннем приложении код не имеет доступа ни к экземпляру NSApplication приложения, ни к его событиям. Таким образом, мне нужно создать вспомогательное приложение и связать его внутри пакета / пакета плагина, чтобы зарегистрировать и обработать это. Пожалуйста, дайте мне знать, если эти предположения неверны.

Пакет подключаемого модуля устанавливается внутри Library/Application Support (пользователь обычно загружает подключаемый модуль в папку «Загрузки», дважды щелкните его, а затем узел обработчик приложения копирует плагин в папку поддержки приложений). Приложение, обрабатывающее URL-адреса и типы файлов, будет размещено внутри пакета подключаемого модуля. Местоположение было выбрано приложением хоста.

У меня есть несколько неопределенностей, на которые я не смог найти ответы:

  • Как macOS находит приложения, способные обрабатывать определенную схему и файл url Типы?
  • MacOS находит это несколько автоматически или я должен что-то вызывать?
  • Если оно будет найдено автоматически, будет ли оно работать, даже если приложение находится внутри пакета подключаемого модуля вне Applications каталог?

1 Ответ

2 голосов
/ 21 января 2020

Ответы на вопросы вы можете найти в документации Launch Services .

Если вы перейдете в раздел «Регистрация приложения», вы увидите, что:

Встроенный фоновый инструмент, запускаемый при загрузке системы или при входе в систему нового пользователя, автоматически выполняет поиск папок «Приложения» в системном, сетевом, локальном и пользовательских доменах и регистрирует любые новые найденные там приложения.

Средство поиска автоматически регистрирует все приложения, когда ему становится о них известно, например, когда они перетаскиваются на диск пользователя или когда пользователь переходит к папке, содержащей их.

Итак , если ваше вспомогательное приложение установлено в / Library / Application Support пользователем, перетаскивающим его вручную, похоже, что Launch Services увидит его и зарегистрирует схему URL.

В противном случае документация будет продолжаться ручной случай:

Несмотря на эти автоматические c утилиты регистрации, он иногда может потребоваться явно зарегистрировать приложение в Launch Services. Например, хотя разработчикам рекомендуется упаковать свои приложения, чтобы их можно было установить, просто перетащив их на диск пользователя, для некоторых приложений может потребоваться более сложное программное обеспечение для пользовательской установки. В таких случаях установщик должен вызвать одну из функций регистрации Launch Services LSRegisterFSRef или LSRegisterURL для явной регистрации приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...