以下は、Safari App Extension を作成して、Safari で開いたウェブページに指定したスタイルシートを自動で適用する方法です。
Safari の機能拡張からもカスタムスタイルシートを設定することができますが、ページごとに異なるスタイルシートを指定することができません。
代わりに Safari App Extension を使用して、ページごとにカスタムスタイルシートを設定することができます。
実行環境は macOS です。
テスト用に未署名の機能拡張を許可する設定を行う
Safari App Extension を作成・使用するためには開発者の署名が必要となります。
XCode で開発者の設定をしていない場合は、未署名の機能拡張を使用することを Safari の設定で許可する必要があります。
許可は Safari を起動するたびに実行する必要があります。
Safari の開発者メニューを表示する
- Safari を起動する
- メニューから Safari >> 環境設定... を選択
- 「詳細」タブを選択
- 「メニューバーに"開発"メニューを表示」にチェックを入れる
未署名の機能拡張を許可する
- メニューから 開発 >> 未署名の機能拡張を許可する を選択
- パスワードの入力を求められるので入力する
XCode を起動する
XCode をインストールしていなければインストールし、起動します。
プロジェクトを作成する
事前に決めておくこと
- プロダクト名 (Product Name)
- 組織識別名 (Organization Identifier)
- プロジェクトを保存する場所
手順
- メニューから File >> New >> Project... を選択
- macOS >> Other >> Safari Extension App をクリック
- [ Next ] をクリック
- Product Name: user defined css for www.example.com
- Organization Identifier: SafariAppExt
- [ Next ] をクリック
- ファイルダイアログが表示されるので、プロジェクトを保存する場所を設定
- [ Create ] をクリック
CSS ファイルを追加する
- 左側のペインにて、<プロダクト名> Extension フォルダを右クリック
- New File... を選択
- macOS >> User Interface >> Empty を選択
- [ Next ] をクリック
- Save As: style.css
- [ Create ] をクリック
- [ Use .css ] をクリック
- style.css がエディタで選択されるので下記の style.css を入力
- Menu >> File >> Save を選択
p {
color: green;
}
設定ファイルに style.css の設定を追加
- 左側のペインにて、<プロダクト名> Extension フォルダの
Info.plistファイルをクリック -
NSExtensionの左にある三角形 ▶︎ をクリックして開く -
NSExtensionの右にあるプラス (+) をクリックする - テキスト入力モードになるので、
SFSafariStyleSheetと入力 -
SFSafariStyleSheetのType欄をArrayに変更する -
SFSafariStyleSheetの右にあるプラス (+) をクリック - 追加されたエントリー (
Item 0) のType欄をDictionaryに変更する - 追加されたエントリー (
Item 0) の左にある三角形 ▶︎ をクリックして開く - 追加されたエントリー (
Item 0) の右にあるプラス (+) をクリックする - テキスト入力モードになるので、
Style Sheetと入力 - 右側の
Value欄にstyle.cssと入力
Safari App Extension を使用するドメインの設定
- 先ほど
style.cssの設定を追加したInfo.plistを選択 -
SFSafariWebsiteAccessの左にある三角形 ▶︎ をクリックして開く -
Allowed Domainsの左にある三角形 ▶︎ をクリックして開く -
Item 0のValue欄にある*.webkit.orgを削除 - 代わりに
*.example.comを入力 - Menu >> File >> Save を選択
ビルドと実行
- 左上の ▶︎ ボタン (Build and then run the current scheme) をクリック
- アプリケーションが起動するので、[ Open in Safari Extensions Preferences... ] をクリック
- Safari の機能拡張設定画面が開くので、作成した機能拡張にチェックを入れる
再ビルドの際の注意点
再度ビルドを実行する際は、事前に "Clean Build Folder" を実行します。
実行しないと、Safari の拡張機能のページに表示されないようです。
- Menu >> Product >> Clean Build Folder を選択
動作確認
- http://www.example.com を開く
- パラグラフの文字色が緑になっていることを確認
片付け
"Clean Build Folder" を実行すると、拡張機能は登録解除されます。
- Menu >> Product >> Clean Build Folder を選択
参考情報
補足
XCode でファイル名の右に M や A が表示される
ファイルを Commit すると消えます。