Safariでは1Passwordなどでよく使用するAction Extension。
その実装方法について調べましたのでまとめます。
App Extensionsとは
App Extensionsは、iOS8から導入されたアプリ間連携の一種です。
iOSでは、下記6種類が用意されています。
- Today
- Share
- Action
- Photo Editing
- ドキュメントプロバイダ
- カスタムキーボード
今回は「Action」ExtensionをiOS Safariに追加する方法についてまとめます。
サンプルExtensionの作成
サンプルアプリのプロジェクト作成、アプリ・Extensionのソースコードについては下記を参考にさせて頂きました。
今回はExtensionのSafariへの追加までなのでソースコードはなくても問題ありません。
http://dev.classmethod.jp/references/ios-8-action-extension/
プロジェクトにExtensionを追加
作成したプロジェクトを選択すると、プロジェクトの設定が表示されるので、
その左下の「+」ボタンをクリックします。
今回はiOSのAction Extensionを作成するので、
左側で「iOS」>「Application Extension」を選択し、右側で「Action Extension」を選択してNextボタンをクリックします。
オプションを入力する画面が表示されます。「Product Name」にExtensionの名前を入力します。今回は”SafariExtension”にしました。
作成したターゲットのアクティベーションダイアログが表示された場合には、Activate を選択します。
以上で、Extensionのターゲット作成は完了しました。
動作確認
今回は自作ExtensionのSafari拡張機能への追加を試したいので、Extensionの実装は省略します。
Extensionの実装は次回以降説明します。
Extensionの起動
Extensionを選択し、デバッグを実行します。
すると、Extensionのhost appを選択するダイアログが表示されるので、「Safari」を選択して「Run」をクリックします。
Safari起動
Safariが起動するので、アクションボタンをタップします。
アクティビティビューコントローラの下の段に今回実行したExtensionが表示されていなければ、「More」を選択します。
この画面では各Extensionの有効・無効を切り替えることができます。
スイッチを切り替えてExtensionを無効にすると、そのExtensionは先程のアクティビティビューコントローラに表示されなくなります。
(有効になっているのにアクティビティビューコントローラに表示されていなかった場合は、一旦無効にして再度有効にすると表示されます。)
自作ExtensionがSafariで実行できるようになりました。
まとめ
SafariにExtensionを追加するだけであれば簡単に実装できることが分かりました。
Safariに追加はできたので、次回はSafariで表示しているWebページに対してJavaScriptを実行する実装方法について説明します。