「SE女子の日常」がKindle本になりました!

[iOS8]Action ExtensionでJavaScript実行#1~Safariに自作Extensionを追加する

safari-app-extension-2

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を追加

作成したプロジェクトを選択すると、プロジェクトの設定が表示されるので、

その左下の「+」ボタンをクリックします。

「File」>「New」>「Target」でも同様です。
1.Target追加

今回はiOSのAction Extensionを作成するので、
左側で「iOS」>「Application Extension」を選択し、右側で「Action Extension」を選択してNextボタンをクリックします。

2.Action選択オプションを入力する画面が表示されます。「Product Name」にExtensionの名前を入力します。今回は”SafariExtension”にしました。

3.Extension記入

作成したターゲットのアクティベーションダイアログが表示された場合には、Activate を選択します。

3.Extensin_Activate

以上で、Extensionのターゲット作成は完了しました。

動作確認

今回は自作ExtensionのSafari拡張機能への追加を試したいので、Extensionの実装は省略します。

Extensionの実装は次回以降説明します。

Extensionの起動

Extensionを選択し、デバッグを実行します。

4.Extension_選択_開始

すると、Extensionのhost appを選択するダイアログが表示されるので、「Safari」を選択して「Run」をクリックします。

5.Extension_実行

Safari起動

Safariが起動するので、アクションボタンをタップします。

6.Safari起動

アクティビティビューコントローラの下の段に今回実行したExtensionが表示されていなければ、「More」を選択します。

7.Moreを選択

この画面では各Extensionの有効・無効を切り替えることができます。

スイッチを切り替えてExtensionを無効にすると、そのExtensionは先程のアクティビティビューコントローラに表示されなくなります。

(有効になっているのにアクティビティビューコントローラに表示されていなかった場合は、一旦無効にして再度有効にすると表示されます。)

8.Extension表示

自作ExtensionがSafariで実行できるようになりました。

9.SafariにExtension追加

まとめ

SafariにExtensionを追加するだけであれば簡単に実装できることが分かりました。

Safariに追加はできたので、次回はSafariで表示しているWebページに対してJavaScriptを実行する実装方法について説明します。

1Password

無料
(2015.10.14時点)
posted with ポチレバ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です