Схема URL-адреса системных настроек OS X

Я пытаюсь открыть панель предпочтений уведомлений (в OS X SystemPreferences.app) по ссылке. Префикс x-apple.systempreferences:// пока работает для открытия приложения с системными настройками, но я хотел бы открыть панель уведомлений напрямую и (в лучшем случае) даже выбрать свое приложение в списке.

Кто-нибудь знает, принимает ли SystemPreferences.app какие-либо аргументы при открытии через URL-схему?

Я уже пробовал x-apple.systempreferences://Notifications и x-apple.systempreferences://Notifications.prefPane, но дополнительные аргументы просто игнорируются.

Спасибо!

Кстати: Да, я знаю, что могу легко открыть файл Notifications.prefPane через openFile:, но я хотел бы знать, возможно ли это через URL.


person max    schedule 11.07.2014    source источник
comment
как вы это делаете через openfile   -  person UKDataGeek    schedule 09.09.2016


Ответы (1)


Вы можете открыть панель предпочтений через схему URL-адресов, используя идентификатор пакета панели предпочтений:

x-apple.systempreferences:com.apple.preference.notifications

Если вам нужно ссылаться на привязку по этой схеме, вы можете сделать это с помощью параметра запроса:

x-apple.systempreferences:com.apple.preferences.sharing?Services_ScreenSharing

Обратите внимание, что эта схема является новой в версии 10.10. Используйте AppleScript или метод открытия файла, если требуется поддержка предыдущих выпусков.

Обновление: Apple ограничила использование схемы URL в 10.11. Начиная с этого выпуска, через схему URL-адресов можно открывать только панели предпочтений с NSPrefPaneAllowsXAppleSystemPreferencesURLScheme, установленным в их Info.plist.

person Matt Stevens    schedule 11.07.2014
comment
Все, спасибо! Интересно, что это работает только без завершающих слэшей (т.е. x-apple.systempreferences:... вместо x-apple.systempreferences://...), что делает эту схему непригодной для использования, например, из Адресная строка Safari, так как Safari не распознает схему без косой черты. - person max; 12.07.2014
comment
Действие по умолчанию в Safari для этой формы - поиск, но если вы дождетесь появления меню действий после ввода / вставки URL-адреса, вы можете выбрать опцию «Перейти на сайт». Встроенные ссылки по этой схеме также работают. - person Matt Stevens; 12.07.2014
comment
Как узнать, как составляется параметр запроса? - person max; 12.07.2014
comment
Единственный вариант - это привязка, отображаемая в открытой панели. Самый простой способ просмотреть доступные привязки - это, вероятно, использовать редактор AppleScript. Откройте «Системные настройки» и выберите интересующую вас панель, затем в редакторе скриптов запустите tell application "System Preferences" to get anchors of current pane. - person Matt Stevens; 12.07.2014
comment
Как вы видите, какие из них доступны? Safari, похоже, предлагает только возможность поиска Google - person UKDataGeek; 09.09.2016
comment
Файлы plist находятся по адресу /Library/PreferencePanes/paneName.prefPane/Contents/Info.plist - person Zoë Smith; 28.01.2019
comment
Пакеты .prefPane иногда содержат файл Plist или XML со всеми доступными идентификаторами. Вы можете указать их после символа ? в URL-адресе, как Services_ScreenSharing в примере. - person Tricertops; 21.11.2019
comment
В Big Sur системные панели кажутся /System/Library/PreferencePanes. - person goetz; 04.03.2021