Asociación del controlador de protocolo en Mac OS X

1

Muchas herramientas admiten una función de enlace de elemento utilizando el protocolo; Con un enlace dado, puedo abrir la página con la herramienta que lo creó.

Por ejemplo, puedo abrir la página de DEVONthink que hice:

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

¿Puedo enseñarle a Mac OS X que x-devonthink-item es el protocolo "DEVONthink" para que el comando sea así?

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

1 respuesta

3

Los controladores de protocolo se registran con OS X en paquetes de aplicaciones (específicamente, en el archivo info.plist en el directorio Contents del paquete). Esto debe ser hecho por la aplicación que lo soporta. En otras palabras, debe ser capaz de ejecutar el segundo comando y tenerlo abierto. Basado en esta página parece que así es como funciona, pero usted dice que no, así que Hay una forma relativamente fácil de hacerlo para cualquier programa.

Si no, o si solo desea registrar su propio controlador, aquí hay algunos pasos (modificados desde Iniciar aplicaciones externas utilizando protocolos personalizados bajo OSX ).

Cree un archivo AppleScript que contenga lo siguiente.

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

En la segunda línea, estás definiendo lo que debería suceder cuando se llama tu protocolo. this_URL será la URL completa ingresada (en la línea de comandos o en otro lugar), incluido el protocolo. En su caso, desea pasar la URL completa, incluido x-devonthink-item a DEVONthink. Si estaba creando su propio protocolo, es posible que solo quiera pasar parte de la cadena, así que tenga eso en cuenta.

Guarde el AppleScript como un paquete de aplicación. Una vez guardado, encuéntrelo en el disco, haga clic con el botón derecho en él y elija Mostrar contenido del paquete. Dentro de la carpeta de Contenidos habrá un archivo llamado info.plist. Ábralo en un editor de texto ( no TextEdit, ya que es casi seguro que estropea el formato del archivo).

En la parte inferior del archivo estará

</dict>
</plist>

Directamente sobre esto, agregue lo siguiente:

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

Guarda y haz doble clic en tu aplicación. No debería pasar nada, y eso está bien, pero en segundo plano, está registrado el protocolo con el sistema operativo.

Finalmente, de vuelta en la Terminal, ejecute el comando deseado:

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

DEVONthink debería abrirse con el elemento especificado. No tengo DEVONthink y no pude probarlo; Confío en el comando que originalmente proporcionó como trabajo. De lo contrario, deberá modificar el script de shell en AppleScript para reflejar lo que debe ser el comando real.

    
respondido por el tubedogg 18.09.2016 - 04:42

Lea otras preguntas en las etiquetas