当前位置:  开发笔记 > 编程语言 > 正文

编写Safari 4扩展的最佳方法

如何解决《编写Safari4扩展的最佳方法》经验,为你挑选了4个好方法。

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



1> 小智..:

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

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

它有两个主要部分:

您需要将代码附加到正在运行的Safari中.这通常使用SIMBL http://www.culater.net/software/SIMBL/SIMBL.php完成.

进入内部后,您需要确定要修补的内容.有一个关于逆转Cocoa应用程序的教程http://www.culater.net/wiki/moin.cgi/CocoaReverseEngineering,它链接到最重要的工具,类转储http://www.codethecode.com/projects/class- dump /(wiki上的链接被破坏).类转储为您提供了Safari类的完整层次结构,您可以通过名称猜测您需要修补的内容.这是一种非常试错的模式.

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



2> Tim Sullivan..:

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

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



3> Olivier Refa..:

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

更多在这个链接

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



4> Quinn Taylor..:

似乎没有人提到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 ...... :-(我很乐意看到它被重写为真正的插件.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有