Associazione del gestore del protocollo in Mac OS X

2

Molti strumenti supportano una funzionalità di collegamento degli articoli usando il protocollo; con un dato link, posso aprire la pagina con lo strumento che l'ha creata.

Ad esempio, posso aprire la pagina DEVONthink che ho creato:

open -a "DEVONthink Pro.app" x-devonthink-item://2AD2E3D2-58B5-455F-99D4-C91D68C5F959

Posso insegnare a Mac OS X che x-devonthink-item è il protocollo "DEVONthink" per eseguire il comando in questo modo?

open "x-devonthink-item://2AD2E3D2-58B5-455F-99D4-C91D68C5F959"
    
posta prosseek 18.09.2016 - 02:12
fonte

1 risposta

4

I gestori di protocollo sono registrati con OS X in pacchetti di applicazioni (in particolare, nel file info.plist nella directory Contents del pacchetto). Questo dovrebbe essere fatto dall'applicazione che lo supporta. In altre parole, dovresti essere in grado di eseguire il secondo comando e farlo aprire DEVONthink. Basato su questa pagina sembra che sia così che funziona, ma tu dici che non funziona, quindi c'è un modo relativamente semplice per farlo per qualsiasi programma.

In caso contrario, o se si desidera semplicemente registrare il proprio gestore, ecco alcuni passaggi (modificati da Avvio di applicazioni esterne utilizzando protocolli personalizzati in OSX ).

Crea un file AppleScript che contenga quanto segue.

on open location this_URL
    do shell script "open -a 'Applications/DEVONthink Pro.app' this_URL"
end open location

Sulla seconda riga, stai definendo cosa dovrebbe accadere quando viene chiamato il tuo protocollo. this_URL sarà l'URL completo inserito (sulla riga di comando o altrove), incluso il protocollo. Nel tuo caso, vuoi passare l'intero URL includendo x-devonthink-item in DEVONthink. Se stavi creando il tuo protocollo, potresti voler passare solo una parte della stringa, quindi tienilo a mente.

Salva AppleScript come pacchetto di applicazioni. Una volta salvato, trovarlo su disco, fare clic con il tasto destro del mouse e scegliere Mostra contenuto pacchetto. All'interno della cartella Contents ci sarà un file chiamato info.plist. Apri questo in un editor di testo ( non TextEdit, in quanto quasi sicuramente rovinerà il formato del file).

Nella parte inferiore del file sarà

</dict>
</plist>

Direttamente sopra questo, aggiungi quanto segue:

    <key>CFBundleIdentifier</key>
    <string>org.personal.dttrick</string>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>Pass To DEVONthink</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>x-devonthink-item</string>
            </array>
        </dict>
    </array>

Salva e fai doppio clic sulla tua app. Nulla dovrebbe accadere, e va bene - ma in fondo, è registrato il protocollo con il sistema operativo.

Infine, torna in Terminale, esegui il comando desiderato:

open "x-devonthink-item://2AD2E3D2-58B5-455F-99D4-C91D68C5F959"

DEVONthink dovrebbe aprirsi con l'elemento specificato. Non ho DEVONthink e non ho potuto testarlo; Sto facendo affidamento sul comando che hai originariamente fornito come funzionante. In caso contrario, sarà necessario modificare lo script della shell in AppleScript per riflettere su quale deve essere il comando effettivo.

    
risposta data 18.09.2016 - 04:42
fonte

Leggi altre domande sui tag