13

Safari 拡張機能を作成する最良の方法は何ですか? 私は Firefox 用の XUL 拡張機能をいくつか作成しましたが、今度はそれらのバージョンを Safari 用に作成したいと考えています。ボタンやフォームをブラウザー UI に追加できるようにする方法はありますか? これは入力マネージャーやサービス メニューでは不可能なので?

4

8 に答える 8

13

Safari プラグインの開発は簡単ではありません。インターフェイスは Objective-C で記述されており、そのほとんどは WebKit の一部でさえありません (そのため、ソースは表示されません)。ただし、実行中のアプリケーションのオブジェクト階層を検査してパッチを適用するための機構があります。Cocoa と Objective-C の理解が必要ですが、それ以下ではありません。

これは、プロセスのブックマークhttp://livingcode.org/2006/tab-dumping-in-safariにある高レベルの概要です。Python を使用して Safari プラグインを作成し、動作する (おそらく古い) コードを使用する方法について説明します。Python の代わりに、Objective-C バインディングを持つものなら何でも使用できます。

これには、次の 2 つの主要な部分があります。

上記のリンクを読むと、プロジェクトの範囲がわかります。

于 2008-09-13T03:33:03.140 に答える
10

最近状況が変わりました。Apple は現在、Safari 5 の一部として拡張機能 API を利用できます。詳細については、Apple のサイトで、またはSafari Developer Program に参加することで確認できます。

Safari の拡張機能はデジタル署名する必要がありますが、署名証明書は Apple から無料で入手できます。これは、Apple が Safari を更新するたびに壊れる可能性が高いハックに頼ることなく、拡張機能を Safari に組み込む正当な方法です。

于 2010-06-08T00:45:19.440 に答える
8

Safari 5.0 のリリースで、Apple は開発者が使用できる新しい拡張フレームワークをリリースしました。機能的には Firefox 拡張フレームワークに似ており、ボタン、ツールバー、コンテキスト メニュー、javascript および html 5 を使用したインジェクションをカスタマイズできます。

詳しくはこちらのリンク

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

于 2010-06-08T13:38:34.923 に答える
5

Safariが実際に真のプラグインをサポートしているという事実に誰も言及していないようですが、入力マネージャーのハッキングは間違いなくそうではありません.

「WebKit プラグイン プログラミング トピック」 http://developer.apple.com/documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/

これは、PDF や Flash コンテンツのサポートなどを実装する方法です。/Library/Internet Plug-ins/ディレクトリ内を覗いて例を見てください。

もちろん、固有の制限があり、UI の変更に関しては、目的を達成できない場合があります。Safari プラグインは、Input Manager がハッキングできるすべてのことを実行できるわけではありませんが、どこでも WebKit で機能し、OS の将来のバージョンでも機能します。注: Snow Leopard では、Safari はデフォルトで 64 ビットであるため、入力マネージャーは機能しません。私はすでにSafari AdBlockを見逃しています.

于 2009-08-10T19:24:37.153 に答える
4

入力マネージャーやサービスメニューでは不可能なため、ブラウザーUIにボタンやフォームを追加できる方法はありますか?

実際、InputManagerを使用すれば、それは可能です。Safari拡張機能の一般的な手法であるSIMBLは、InputManagersの単なるラッパーです。これは、 S mart I nput M anager B undleLoader略です。Safariの既存のクラスを拡張するだけで、メニューバー、ツールバー、ダイアログなど、どこにでもコンテンツを追加できます。

とは言うものの、Safariの拡張機能を作成することは、æonが言ったように重要であるだけでなく、完全にサポートされていません。Inquisitor(最近Yahoo!が買収)やGoogleのGearsなど、比較的人気のあるものがいくつかありますが、ほとんどの場合、公式にサポートされ、広く使用されている手法であるFirefoxの拡張機能とは大きく異なります。

また、LeopardのInputManagerの特別な制限も考慮に入れる必要があります。

于 2008-09-13T08:05:30.690 に答える
0

Safari拡張機能はアップルによって承認される必要はありません。あなたはそれらを作るための開発者証明書(無料)を持っているだけですが、それらを渡すことができ、AppleはExtension Galleryを作っていますが、そこから配布する必要はありません。ご覧のとおり、今日試すことができる拡張機能はすでにかなりあります。証明書は、改ざんされていないことを確認するだけです。

http://safariextensions.tumblr.com/

于 2010-06-09T15:51:45.330 に答える
0

既存の拡張機能を調べてその方法を確認したい場合は、それをダウンロードするか、Safari 拡張機能フォルダーから取得してから、.safariextz を .xar に変更し、Pacifist で開いて/抽出してコードを表示し、追加する場合はExtension Builder アプリ。

于 2010-06-10T11:38:59.187 に答える
0

また、Apple は、Leopard の時点で InputManagers が厳しく制限されており、Apple Leopard リリース ノートに従って 64 ビット アプリケーションでは実行されないと述べています。Snow Leopard (おそらく Safari を含む) ではほとんどのアプリケーションが 64 ビットになることを考えると、これは特に興味深いことです。Apple は間違いなく、機能をオーバーライドおよび拡張するベクトルとして InputManager を抹消しようとしています。Safari には拡張メカニズムがどうしても必要です。

于 2009-06-11T23:17:14.520 に答える