PhoneGapを使用したiPhoneネイティブアプリケーションを開発するにあたり、アプリケーション上で入力させるパスワードなどの情報はあまりローカル/Webストレージ上に保存したくないところ。このような場合はiOS側で用意されているキーチェーンを利用する。PhoneGap開発者のひとりであるShazron Abdullah氏が自身のブログにてPhoneGapでiOS Keychain for Pluginを活用する方法を紹介している。
おもな手順は次のとおり。
- phonegap-pluginsをダウンロード
- 使用したいプロジェクトの「Frameworksグループ」に"既存のフレームワーク - Security.framework"を追加
- 使用したいプロジェクトの「Plugins」に"SAiOSKeychainPlugin.h"と"SAiOSKeychainPlugin.m"の2ファイルを追加
- 使用したいプロジェクトの「www」に"SAiOSKeychainPlugin.js"を追加
- 必要なコードを追加する (サンプルはphonegap-phonegap-plugins/iPhone/Keychain/KeychainPlugin-Host/www/index.html)
フレームワークファイル追加後の構成図は次のとおり。
実際にサンプルファイル(index.html)をもちいてビルドと実行をおこなう。
iOS Keychain Plugin for PhoneGapのメソッドは次のとおり(SAiOSKeychainPlugin.jsより)。
メソッド | 引数 | 概要 |
---|---|---|
window.plugins.keychain.getForKey() | key, servicename, onSuccess, onFail | 値を取得する |
window.plugins.keychain.setForKey() | key, value, servicename, onSuccess, onFail | 値を格納する |
window.plugins.keychain.removeForKey() | key, servicename, onSuccess, onFail | キーを削除する |
引数 | 内容 |
---|---|
key | キー名を指定 |
value | キーに格納する値を指定 |
servicename | キーチェーンに登録するサービス名を指定 |
onSuccess | 処理成功時に実行する関数を指定 |
onFail | 処理失敗時に実行する関数を指定 |
iOS Keychain for Pluginを活用すれば簡単なJavaScriptコードでiOSのキーチェーンを利用できるようになる。PhoneGapで外部Webサービスを利用するアプリケーションを開発する場合はぜひ覚えておきたいプラグインだ。このほかにもPhoneGapには
- iPhone用: PayPalPlugin, Badge
- Android用: BarcodeScanner
など、魅力的なプラグインが用意されている。開発前にひととおりチェックしておこう。
Objective-CやJavaに精通していないデベロッパでも、HTML+CSS+JavaScriptで簡単にスマートフォン向けのアプリケーション開発が可能になるPhoneGap。ただWebアプリケーションをネイティブアプリ化するだけではなく、端末の機能をJavaScriptで 容易に操作できるようになっている点も嬉しいところ。各デバイス向けのチュートリアルも充実しており、驚くほどスピーディなアプリケーションの開発が可能だ。ちょっとしたアプリケーションから、デバイスの機能を活用したアプリケーションを開発したい場合に検討してみてはいかがだろうか。