Для этого вы можете использовать Службы запуска .
LSCanURLAcceptURL()
может проверить, может ли данное приложение (указанное URL-адресом) принять данный URL-адрес.
LSCopyApplicationURLsForURL()
вернет URL-адреса пакетов приложений для всех приложений, которые утверждают, что обрабатывают URL-адреса такого типа. Для URL file:
используется расширение имени файла или код типа старого стиля. Для других типов URL-адресов используется схема URL-адресов. Вероятно, именно это Firefox использует для заполнения списка, который вы упомянули.
Если вы просто хотите приложение по умолчанию для URL, используйте LSCopyDefaultApplicationURLForURL()
. Я не помню, так ли это, но теоретически Firefox мог использовать это для предварительного выбора значения по умолчанию в этом списке.
Некоторые функции NSWorkspace
встроены в Launch Services. Его -URLForApplicationToOpenURL:
метод в основном является оберткой вокруг LSCopyDefaultApplicationURLForURL()
. К сожалению, у него нет методов, соответствующих другим функциям Launch Services, о которых я говорил.