Eu tenho lido muito online sobre manipuladores de URL personalizados / manipuladores de protocolo personalizados, como:
- Iniciando aplicativos externos usando protocolos personalizados no OSX
- Manipulador de URL do OS X para abrir links para arquivos locais
Entendo que você pode dizer ao sistema que um determinado programa é capaz de lidar com um determinado esquema / protocolo com o Info.plist
arquivo:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>Local File</string>
<key>CFBundleURLSchemes</key>
<array>
<string>local</string>
</array>
</dict>
</array>
<key>NSUIElement</key>
<true/>
Mas se houver vários aplicativos capazes de abrir o mesmo manipulador de URL, como, por exemplo, mailto:
como você especifica qual deles deseja que o sistema use?
Houve algumas referências a utilitários como o More Internet preference pane
que parece não estar mais disponível no site do autor. Eu o encontrei on-line pelo Google, mas parece um pouco instável - como se tivesse sido escrito para um OSX mais antigo - talvez Tiger.
Não consegui encontrar informações sobre como definir o manipulador de URL para protocolos e protocolos personalizados. Estou assumindo que existe um plist
arquivo em algum lugar que eu possa editar - ou talvez haja um utilitário novo e melhor que funcione bem com o Mountain Lion?
Atualização de julho de 2017: RCDefaultApp e
lstool
não funciona mais no macOS 10.12 ou posterior. Teremos que encontrar uma nova solução.Edit Mar 2018
Encontrei o SwiftDefaultApps, mas não posso testar, pois ainda não estou em High Sierra.
Continuando a resposta anterior, se você desejar fazer isso na linha de comando, poderá usar o
lstool
comando, que é o núcleo do RCDefaultApp, encontrado emRCDefaultApp.prefPane/Contents/Resources/lstool
.Seu uso é direto:
fonte
lstool
ferramenta de linha de comando exibe esse erro quando você tenta executá-lo:objc[1049]: Objective-C garbage collection is no longer supported.
(lstool
é o programa interno usado pelo painel de preferências RCDefaultApp. Embora o painel de preferências pareça funcionar, acho que não pode fazer nada porquelstool
está quebrado. )Listando as configurações atuais do manipulador de URL do LaunchServices no Apple OS X 10.10 (Yosemite):
fonte
Na verdade, eu escrevi um aplicativo que simplifica o registro de protocolos de URL personalizados, se alguém estiver interessado. É chamado LinCastor ( http://onflapp.wordpress.com/lincastor/ ). Os manipuladores podem ser definidos como AppleScript ou shell script (que pode perl, python ou o que for).
fonte
Abrir o arquivo com o XCode funciona bastante fácil.
O uso do comando build in,
plutil
conforme descrito na resposta em https://discussions.apple.com/thread/5815759 para converter entre o formato xml1 ou binary1, funciona de maneira semelhante.Não há necessidade de ferramentas 'alienígenas' :-)
fonte
Você também pode usar duti :
fonte
Acabei de experimentar o antigo More Internet, no El Capitan.
É divertido e a única maneira de funcionar é usando as teclas de seta para cima e para baixo para selecionar o protocolo e arrastar / soltar o ícone do APP na janela para fazer uma alteração.
Mudei o padrão do Safari para o Chrome, e a alteração travou, por isso ainda funciona.
fonte
Outra maneira de listar as configurações atuais do manipulador de URL do LaunchServices com o Xcode no Apple OS X 10.10+ (Yosemite):
fonte