3 votes

Associer le gestionnaire de protocole dans Mac OS X

De nombreux outils prennent en charge une fonction de lien entre les éléments à l'aide d'un protocole ; avec un lien donné, je peux ouvrir la page avec l'outil qui l'a créé.

Par exemple, je peux ouvrir la page DEVONthink que j'ai créée :

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

Puis-je apprendre à Mac OS X que le x-devonthink-item Est-ce que le protocole "DEVONthink" permet de faire la commande comme ceci ?

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

7voto

tubedogg Points 14839

Les gestionnaires de protocole sont enregistrés auprès d'OS X dans les paquets d'applications (plus précisément, dans le fichier info.plist du répertoire Contents ). Cela devrait être fait par l'application qui le supporte. En d'autres termes, vous devriez pouvoir exécuter directement la deuxième commande et faire en sorte qu'elle ouvre DEVONthink. Basé sur cette page on dirait que c'est comme ça que ça marche, mais vous dites que ce n'est pas le cas, donc il y a un moyen relativement facile de le faire pour n'importe quel programme.

Si ce n'est pas le cas, ou si vous voulez simplement enregistrer votre propre gestionnaire, voici quelques étapes (modifiées à partir de Lancement d'applications externes à l'aide de protocoles personnalisés sous OSX ).

Créez un fichier AppleScript qui contient les éléments suivants.

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

Sur la deuxième ligne, vous définissez ce qui doit se passer lorsque votre protocole est appelé. this_URL sera l'URL complète saisie (sur la ligne de commande ou ailleurs), y compris le protocole. Dans votre cas, vous souhaitez transmettre l'URL complète, y compris le protocole. x-devonthink-item dans DEVONthink. Si vous créez votre propre protocole, il se peut que vous ne souhaitiez transmettre qu'une partie de la chaîne de caractères, alors gardez cela à l'esprit.

Enregistrez l'AppleScript en tant que bundle d'application. Une fois enregistré, retrouvez-le sur le disque, faites un clic droit dessus et choisissez Afficher le contenu du paquet. Dans le dossier Contents, vous trouverez un fichier appelé info.plist. Ouvrez-le dans un éditeur de texte ( pas TextEdit, car il est presque certain que le format du fichier en sera altéré).

Au bas du fichier, il y aura

</dict>
</plist>

Directement au-dessus, ajoutez ce qui suit :

    <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>

Sauvegardez et double-cliquez sur votre application. Il ne devrait rien se passer, et c'est bien ainsi, mais en arrière-plan, le protocole a été enregistré auprès du système d'exploitation.

Enfin, de retour dans le Terminal, exécutez la commande de votre choix :

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

DEVONthink devrait s'ouvrir avec l'élément spécifié. Je n'ai pas DEVONthink et je n'ai pas pu le tester ; je me fie à la commande que vous avez fournie initialement comme fonctionnant. Si ce n'est pas le cas, vous devrez modifier l'interpréteur de commandes script dans l'AppleScript pour refléter ce que la commande réelle doit être.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X