编写Safari 4扩展的最佳方法

use*_*ame 13 safari plugins

编写Safari扩展的最佳方法是什么?我为Firefox编写了几个XUL扩展,现在我想为Safari编写它们的版本.有没有办法允许您向浏览器UI添加按钮或表单,因为输入管理器或服务菜单无法实现这一点?

小智 13

Safari插件开发非常重要.接口是用Objective-C编写的,其中大部分都不是WebKit的一部分(所以你看不到源代码),但是有机会来检查和修补正在运行的应用程序的对象层次结构.它需要了解Cocoa和Objective-C,但不能低于Cocoa和Objective-C.

以下是我在流程书签http://livingcode.org/2006/tab-dumping-in-safari中的高级概述.它使用Python创建了使用工作(可能已过时)代码的Safari插件.您可以使用任何具有Objective-C绑定的东西代替Python.

它有两个主要部分:

阅读上面的链接将为您提供项目的范围.


Tim*_*van 10

事情最近发生了变化.Apple现在有一个扩展API作为Safari 5的一部分提供.您可以在Apple的网站上找到更多信息并加入Safari开发者计划.

Safari的扩展必须经过数字签名,但您可以从Apple免费获得签名证书.这是让你的扩展进入Safari而不诉诸每次Apple更新Safari时可能会破解的黑客的合法方式.


Oli*_*alo 8

随着Safari 5.0的发布,Apple发布了一个新的扩展框架供开发人员使用.在功能上它看起来类似于Firefox扩展框架,允许自定义按钮,工具栏,上下文菜单,使用javascript和html注入5

更多在这个链接

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


Qui*_*lor 5

似乎没有人提到Safari确实支持真正的插件这一事实,输入管理器黑客绝对不是.

"WebKit插件编程主题" http://developer.apple.com/documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/

这就是如何实现对PDF和Flash内容的支持.在/Library/Internet Plug-ins/目录中查看示例.

当然,存在固有的局限性,就UI修改而言,您可能无法实现您的希望.Safari插件无法完成Input Manager hacks所能做的所有事情,但它们可以在任何地方和未来版本的操作系统中使用WebKit.注意: Snow Leopard默认情况下Safari为64位,因此没有输入管理器工作.我已经错过了Safari AdBlock ...... :-(我很乐意看到它被重写为真正的插件.