Pregunta

¿Qué método debo poner en práctica en el delegado de mi solicitud de cacao de manera que en el lanzamiento, que va a abrir una dirección URL? (Http / https, en este caso) que ya haya implementado los esquemas de URL, sólo necesito saber cómo puedo conseguir mi solicitud para abrir en una notificación URL.

Actualización: Lo siento, yo no estaba muy claro. Mi aplicación es un navegador que soporta HTTPS / URL HTTP, pero sólo puede abrirlos cuando ya está en marcha. ¿Qué puedo hacer para implementar el soporte para URLs abiertos en mi aplicación en el lanzamiento?

¿Fue útil?

Solución 2

Yo ya había implementado el evento getUrl, de modo que por sí sola no es suficiente para obtener la solicitud para abrir una URL en el lanzamiento. El truco es que el AppleEvent debe instalarse en applicationWillFinishLaunching: no applicationDidFinishLaunching :. De lo contrario, el evento no se envía en absoluto, porque la aplicación no se ha registrado en el tiempo.

Otros consejos

Cuando una aplicación acaba de lanzar en OS X, NSApp (la instancia NSApplication global para el programa) envía a su delegado de la mensaje de applicationDidFinishLaunching: (a través del sistema de notificación). Puede implementar dicho método en el delegado de manejar la notificación y abrir una ventana del navegador en respuesta, usando NSWorkspace . Algo parecido a lo siguiente funcionaría:

// Your NSApp delegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://www.example.com/"]];
}

No es un método delegado. Es necesario implementar un controlador de Apple de eventos para el evento getUrl.

Por suerte, esto es exactamente el caso de usos de Apple para demostrar la implementación de un controlador de Apple Evento .

Para implementar un controlador de protocolo que se puede seleccionar (en las preferencias de Safari, por ejemplo) como el "navegador por defecto" y que pondrá en marcha en respuesta a HTTP / HTTPS, es necesario hacer algunas cosas.

  1. Añadir archivos .scriptSuite y .scriptTerminology a sus recursos del proyecto. Estos le dirá Mac OS X que se le manejando el mando GetURL.

  2. Agregar una clave CFBundleURLTypes a su archivo Info.plist lista de los "esquemas de URL" que su aplicación va a manejar.

  3. También en Info.plist, agregue la clave NSAppleScriptEnabled con el valor SI.

  4. Añadir una nueva clase a su aplicación como una subclase de NSScriptCommand e implementar el - Selector performDefaultImplementation (id). Desde dentro de esta función se encuentra la URL hecho clic en [directParameter auto]. Pasar esto a controlador de URL de su aplicación!

Para los detalles completos consulte el artículo: http://www.xmldatabases.org/WK/blog/1154_Handling_URL_schemes_in_Cocoa.item

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top