Как я могу проверить, зарегистрировано ли приложение для обработки определенной схемы URL в macOS? - PullRequest
0 голосов
/ 01 сентября 2018

В iOS я могу проверить, есть ли у конкретной схемы URL связанное приложение, вызвав метод UIApplication canOpenURL . Есть ли эквивалентный метод в macOS?

Если нет, то как Firefox узнает, как заполнять список приложений, когда я нажимаю на ссылку с пользовательской схемой URL?

1 Ответ

0 голосов
/ 01 сентября 2018

Для этого вы можете использовать Службы запуска .

LSCanURLAcceptURL() может проверить, может ли данное приложение (указанное URL-адресом) принять данный URL-адрес.

LSCopyApplicationURLsForURL() вернет URL-адреса пакетов приложений для всех приложений, которые утверждают, что обрабатывают URL-адреса такого типа. Для URL file: используется расширение имени файла или код типа старого стиля. Для других типов URL-адресов используется схема URL-адресов. Вероятно, именно это Firefox использует для заполнения списка, который вы упомянули.

Если вы просто хотите приложение по умолчанию для URL, используйте LSCopyDefaultApplicationURLForURL(). Я не помню, так ли это, но теоретически Firefox мог использовать это для предварительного выбора значения по умолчанию в этом списке.

Некоторые функции NSWorkspace встроены в Launch Services. Его -URLForApplicationToOpenURL: метод в основном является оберткой вокруг LSCopyDefaultApplicationURLForURL(). К сожалению, у него нет методов, соответствующих другим функциям Launch Services, о которых я говорил.

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