1

Я хочу использовать командную строку, чтобы узнать, какое приложение открывает ссылки http и https. Мне нужно сделать это в сценарии. Я могу увидеть ответ, выполнив 'defaults read com.apple.LaunchServices ', но я не хочу разбирать этот словарь самостоятельно.

2 ответа2

1

Другие опции:

VERSIONER_PERL_PREFER_32_BIT=1 perl -MMac::InternetConfig -le 'print +(GetICHelper "http")[1]'

tell application "System Events"
    try
        value of property list item "LSHandlerRoleAll" of (property list item 1 of property list item "LSHandlers" of property list file ((path to preferences as text) & "com.apple.LaunchServices.plist") where value of property list items contains "http")
    on error
        "com.apple.safari"
    end try
end tell

http://www.hamsoftengineering.com/codeSharing/defaultApplication/defaultApplication.html:

$ DefaultApplication -url http:
/Applications/Safari.app
1

Apple Script имеет встроенные возможности для анализа файлов списка свойств. StefanK на macscripter.net предоставляет фрагмент, который уже помог мне некоторое время назад. Вы можете легко сохранить и выполнить его как скрипт, я сохранил его в своем каталоге bin пользователя (который я добавил в свой $PATH):

#!/usr/bin/osascript

tell (system attribute "sysv") to set MacOS_version to it mod 4096 div 16
if MacOS_version is 5 then
    set {a1, a2} to {1, 2}
else
    set {a1, a2} to {2, 1}
end if
set pListpath to (path to preferences as Unicode text) & "com.apple.LaunchServices.plist"
tell application "System Events"
    repeat with i in property list items of property list item 1 of contents of property list file pListpath
        if value of property list item a2 of i is "http" then
            return value of property list item a1 of i
        end if
    end repeat
    return "com.apple.Safari"
end tell

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .