Pregunta

¿Cuál es la mejor manera de escribir una extensión de Safari?He escrito un par de extensiones XUL para Firefox y ahora me gustaría escribir versiones de ellas para Safari.¿Existe alguna forma que le permita agregar botones o formularios a la interfaz de usuario del navegador, ya que esto no es posible con un administrador de entrada o un menú de servicio?

¿Fue útil?

Solución

Con el lanzamiento de Safari 5.0, Apple lanzó un nuevo marco de extensión para que lo utilicen los desarrolladores.En cuanto a características, se parece al marco de extensión de Firefox, lo que permite personalizar botones, barras de herramientas, menús contextuales e inyecciones usando javascript y html 5.

Más en este enlace

https://developer.apple.com/documentation/safariextensions

Otros consejos

El desarrollo del complemento de Safari no es trivial.La interfaz está escrita en Objective-C, y la mayor parte ni siquiera forma parte de WebKit (por lo que no se puede ver el código fuente), pero hay maquinaria para inspeccionar y parchear la jerarquía de objetos de una aplicación en ejecución.Requiere comprensión de Cocoa y Objective-C, pero no menos.

Aquí hay una descripción general de alto nivel que tenía en mis marcadores del proceso. http://livingcode.org/2006/tab-dumping-in-safari.Repasa la creación de complementos de Safari usando Python con código funcional (probablemente desactualizado).En lugar de Python, puedes usar cualquier cosa que tenga enlaces Objective-C.

Tiene dos partes principales:

Leer los enlaces anteriores le dará el alcance del proyecto.

Las cosas han cambiado recientemente.Apple ahora tiene una API de extensiones disponible como parte de Safari 5.Puedes encontrar más información en sitio de Apple y por unirse al programa de desarrolladores de Safari.

Las extensiones de Safari deben estar firmadas digitalmente, pero puedes obtener el certificado de firma gratis de Apple.Esta es la forma legítima de introducir su extensión en Safari sin recurrir a hacks que probablemente se estropearán cada vez que Apple actualice Safari.

Nadie parece haber mencionado siquiera el hecho de que Safari realmente admite complementos reales, mientras que los hacks del administrador de entrada definitivamente no lo son.

"Temas de programación del complemento WebKit" http://developer.apple.com/documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/

Así es como se implementan cosas como la compatibilidad con contenido PDF y Flash.Echa un vistazo al interior de tu /Library/Internet Plug-ins/ directorio para ver ejemplos.

Por supuesto, existen limitaciones inherentes y es posible que no pueda lograr lo que espera en cuanto a la modificación de la interfaz de usuario.Los complementos de Safari no pueden hacer todas las cosas que hacen los hacks de Input Manager, pero funcionarán en WebKit en cualquier lugar y en futuras versiones del sistema operativo. Nota: Safari es de 64 bits de forma predeterminada en Snow Leopard, por lo que no funciona ningún administrador de entrada.Estoy perdido Bloqueo de anuncios de Safari ya...:-( Me encantaría verlo reescrito como un complemento auténtico.

¿Existe alguna forma que le permita agregar botones o formularios a la interfaz de usuario del navegador, ya que esto no es posible con un administrador de entrada o un menú de servicio?

En realidad, con un InputManager, haría ser posible.SIMBL, la técnica común para las extensiones de Safari, es simplemente un contenedor de InputManagers: significa Smercado Ientrada METROanager Bhasta lcargador.Puedes agregar cosas a la barra de menú, a la barra de herramientas, a los cuadros de diálogo, en cualquier lugar, simplemente ampliando las clases existentes de Safari.

Dicho esto, escribir extensiones para Safari no sólo no es trivial, como dijo æon, sino que además no tiene ningún soporte.Hay algunas relativamente populares, como Inquisitor (recientemente adquirida por Yahoo!) y Gears de Google, pero en su mayor parte, es muy diferente a las extensiones de Firefox, que son una técnica ampliamente utilizada y con soporte oficial.

Definitivamente también querrás tener en cuenta el especial limitaciones de InputManagers en Leopard.

Además, hay que tener en cuenta que Apple ha declarado que los InputManagers están muy limitados a partir de Leopard y no se ejecutarán en aplicaciones de 64 bits según Apple. Notas de la versión de leopardo.Esto es especialmente interesante considerando que la mayoría de las aplicaciones serán de 64 bits en Snow Leopard (incluido presumiblemente Safari).Apple definitivamente está tratando de eliminar InputManager como vector para anular y ampliar la funcionalidad.Safari necesita desesperadamente un mecanismo de extensión.

Las extensiones de Safari NO necesitan ser aprobadas por Apple.Sólo tienes un certificado de desarrollador (gratis) para crearlos, pero puedes pasarlos y, aunque Apple está creando la Galería de extensiones, no tienes que distribuirla allí.Como puedes ver ya hay bastantes extensiones que puedes probar hoy.El certificado simplemente garantiza que no ha sido manipulado.

http://safariextensions.tumblr.com/

Si desea ver una extensión existente para ver cómo se hace, descárguela o consígala de su carpeta de extensiones de Safari, luego cambie .safariextz a .xar, luego ábralo/extráigalo con Pacifist para ver el código y, si desea, agréguelo a la aplicación Extension Builder.

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