ページ

2009年10月13日火曜日

Safari用独自プラグインを作る(1) - ひな形プロジェクト作成

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

(先日までのプラグイン調査の記録)




先日までの調査で WebkitPlugIn では目的とするプラグインの実現は難しそうなので、急遽 SIMBLの作り方を参考に独自のプラグインを作ることにした。なお先日紹介したブログで SIMBLを使わなくとも(トリッキーな方法で)目的のクラスをロードする方法が見つかったので、実装ではこの方法を利用してSafari用プラグインを作っていく。


今回は検証用のひな形プロジェクトを作る。




WebkitPlugIn の作法には従わないので今回は Xcode のテンプレートは "Cocoa Bundle" を選んだ。



Info.plist を開き、WebPlugin* 関連のエントリを追加する。"WebPluginMIMETypesFilename" で指定する plist ファイルは実在しない架空のファイル名を指定する(これがミソ)。また "Bundle OS Type code" を WebPlugInを示す "WBPL" に変更しておく。これを忘れるとプラグインとして認識されない。



"Principal Class" として PluginController を指定し、クラスを作っておく。

PluginController.h
#import <Cocoa/cocoa.h
@interface PluginController : NSObject {

}

PluginController.m
@implementation PluginController

+(void)load
{
 NSLog(@"+[PluginController load] was called");
}
@end

+[load] がエントリポイントとなる。




ビルドして作成されたファイル SafariPlugInStudy.bundle を ~/Library/Internet Plugins/ へコピーし、Safariを再起動する。



コンソール.app を開きメッセージを確認する。

 出た。