iPhoneでATOKが使えるATOK Padがリリースされましたね。
まあ変換精度は言うまでもなく。見た目のカッコよさでリボルバーを試してみましたがなれるまでは大変そうです。慣れたら結構楽しそう。
さて、このATOK Padには外部アプリケーションとの連携をするためのAPIが備わっています。iPhoneにはもともと、カスタムURLスキーマを定義してアプリが情報を受け取れるようにする仕組みがあり、またコピペを実現するペーストボードには独自の名前をつけて保存することができます。
ATOK Padはこの仕組みをうまく利用してアプリの入力画面でATOK Padを一時的に起動し、結果を元のアプリにコールバックする形で連携を実現しています。
で、その実装方法をしめしたサンプルが開発者向け情報|iPhone/iPad用日本語入力アプリ ATOK Pad for iOSにXcodeのプロジェクトであるのですが、あえてこれをMonoTouchでやってみました。
以下のクラスは、ATOK Pad連携周辺の処理をまとめたものです。結果をイベントで受け取れるようになっているため、簡単に結果を取得できます。
実際の呼出しはこのgistの末尾に付け足しています。
ATOK Pad with MonoTouch
コツは以下の2つかな?
- Info.Plist にカスタムURLの定義をすること。
- UIApplicationDelegate の実装クラスで HandleOpenURL を override しておくこと
URLからATOK Padが実行されると、呼び出し元で指定したテキストが表示されている状態でタスクスイッチします。ここで入力完了次第、右の画像右上のボタンで元のアプリに入力結果を戻すことができます。
Objective-Cでもサンプルソースをコピペするだけで簡単に組み込めるので、長文を書く系統のアプリは対応してみるとよいのではないでしょうか。
あとは、共通で使える ATOK Pad呼び出しボタンのアイコンとか欲しい感じですね。