Anywhereのコンセプトです。Anywhereの中でも、よみがな「ー」への単語登録方法は、ひときわ風変わりです。Anywhereを起動したとき、または前面に呼び出したときに、そのときクリップボードに入っているテキストを、勝手に「ー」に登録してしまうのです。それは、こうすることで、クリップボード履歴機能を擬似的に実現しようというのです。クリップボード履歴からのペーストは、「ー」の変換結果からの挿入という形にすることで、iOSに本来無い、複数の履歴から選択してのペーストを可能にしているわけです。iOSの制約で、常にクリップボードをバックグラウンドで監視するアプリを作ることはできませんから、苦肉の策です。同種のクリップボード履歴管理アプリが他にもありますが、このように連絡先を使った単語登録技を応用した、日本語キーボード利用者限定の仕組みを採用することで、利便性の向上を図っているわけです。Anywhereの主たる機能は、前述のように「ー。?!」というよみに頻用の単語を登録することです。Anywhereの機能のもう一つの軸として、アクションがあります。Anywhereで登録した単語を対象に、アクションを通していろいろな操作ができるのです。今回このエントリでフォーカスを当てたいのは、JavaScriptを使ったテキスト加工機能。Anywhere+JavaScriptが持つ可能性の中でmoyashiが注目したのは、以下の流れが可能であるということです。[クリップボードにあるテキスト]→[JavaScriptで加工]→[クリップボードに書き戻し][クリップボードにあるテキスト]→[JavaScriptで加工]→[openURLを実行]ユーザーでも、このことを知っている人は少ないのではないでしょうか。Anywhereによる上記二例の実例をお目にかけます。アクションの、少し風変わりな適用方法をおさらいJavaScript実行機能はいくつかあるアクションの一種です。JavaScript実行機能のチュートリアルに入る前に、まずはアクションの適用方法からおさらいしたいと思います。何かメモアプリなどを起動し、「うんこなう」と入力、それをクリップボードにコピーしてください。Anywhereを起動、さらに、一番上の「ー(クリップボード履歴)」をタップ、さきほどクリップボードにコピーした「うんこなう」がリストされていることを確認してください。クリップボード履歴機能が発動したわけですね。画面下に四分割されたボタンが見えるかと思います。これがアクションボタンです。アクションには3つのページ(設定で6ページまで増やすことが可能)があり、ページは右端にあるボタンを押すとめくることができます。画面下、右端のページめくりボタンを押して実行したいアクションを表示させ、実行したいアクションをタップして選んだ後、登録単語をタップ。これがアクションの適用方法となります。いう順序を想定するかと思いますが、その予想は裏切られます。Anywhereは、普通と逆なのです。返信ボタンを押してからツイートを選ぶ)JavaScriptの実行方法アクションの適用方法はわかりましたので、次はJavaScriptの実行方法です。ボタン上の数字が3になるまで、画面下、右端のページめくりボタンを押します。初期状態では、文字が書いていないのっぺらぼうのボタンばかりが並んでいるかと思います。この気味の悪い3ページ目こそが、JavaScript実行アクションのためのボタンが並ぶページです。初期状態では、ボタンの中身となるJavaScriptが空の状態であるため、ボタンに文字が書いていないのです。左端ののっぺらぼうのボタンをタップしてみます。すると、ボタンの中身を設定するためのウインドウが、下からせり上がってきます。ここにJavaScriptを書き込むわけですね。「JavaScript:」とある欄に以下のように書いてみてください。")「TEXT」は、登録単語を意味します。「うんこなう」という登録単語をタップしたときには、「TEXT」は実際には「うんこなう」と自動的に置き換えられます。“)」で文字の間に半角スペース二つを挟んで結合しています。う」というテキストに加工されます。いいことを強調されて、すっごくムカツキますね。「結果に対する処理:」の下にもボタンが並んでいます。これが、JavaScript実行後に適用する処理を選択するものです。JavaScriptを実行した後、ここで選んだ処理が、仕上げのステップとして実行されるわけです。四つ並んだ処理の意味を左から説明します。Anywhere内蔵ブラウザで表示(Safariっぽいアイコン)処理結果のテキストをURLとみなし、openURLを実行(カミナリ)処理結果得られたテキストをダイアログに表示(「i」アイコン)ここでは、JavaScriptで加工したテキストをクリップボードに書き戻したいので、左端のボタンをタップします。ここでタップしても何も起こりません。JavaScriptを実行した後の処理を指定しているだけです。ボタンの上の文字、ラベルも指定しましょう。「ラベル:」の下に「ムカツイ」と入力します。右上の「保存」ボタンをタップし、さらに「完了」をタップして編集モードを抜け出ます。何も設定されていない状態のボタンを押したときは、いきなりJavaScript編集モードに突入しましたが、これは、JavaScript実行アクションボタンの中身が空の場合だけです。「ムカツイ」ボタンには既にJavaScriptが設定されているので、ボタンをタップしても、さきほどのようにJavaScript実行アクションボタン編集ウインドウがせり上がってくることはありません。「ムカツイ」ボタンをタップしてみてください。ウインドウは表示されません。「ムカツイ」ボタンが選択された今の状態。この状態は、続いてタップする登録単語を、さきほど設定したJavaScriptで処理し、処理結果をクリップボードにコピーする準備が整った状態です。「うんこなう」をタップしてみましょう。う」がクリップボードにコピーされたことが通知されるでしょう。Twitterクライアントを立ち上げてください。書き込みボタンを押し、ペースト。投稿ボタンを押します。してからフォロワー数を確認すると、少し減っているかと思います。Anywhereによる以下の流れが体験できました。一度JavaScriptを設定すると、タップしてもJavaScript実行アクションボタン編集ウインドウは表示されなくなります。最初に表示させたJavaScript編集ウインドウはどうやって再度表示させられるでしょうか?方法は、右上の「編集」ボタンを押し、編集モードに入った後で、編集したいJavaScriptアクションボタンをタップ。デフォルトではJavaScript実行アクションのためのボタンが四つしかありませんが、これは「設定>TextClip>追加列数」で増やすことができ、最大で16個になります。仕事をしていれば、形式の決まったメールを送る機会はあるかと思います。ただの定形メールであれば、いくつかそれ用途のアプリが出ていますが、日によって変わる定形メールというものを送る機会が、僕には絶えずあります。メールの表題に送信日の日付を入れるパターンというのは結構あります。月例のメールであれば、その月の数字を入れたりということも、ままありそうですね。Anywhereの以下の機能を見た瞬間ひらめきました。Anywhereを使って実現してみます。結論ですが、以下のスクリプトをJavaScript実行ボタンに設定。encodeURI(dd+"の報告です。"mailto:"+a+"?subject=";p+subject+"&body="+body;「結果に対する処理:」は、以下を選択。処理結果のテキストをURLとみなし、openURLを実行(カミナリ)「ラベル:」は「定形メル」とでもしておきます。「定形メル」ボタンを選択した後で、さっきと同じようにメールの本文にしたい登録単語(クリップボード履歴項目)をタップすると、その項目を本文に設定した形で新規メールが作成されます。メールのサブジェクトと本文の冒頭には、JavaScriptで生成した今日の日付が埋め込まれています。別な日に実行すれば、もちろん、その日の日付が埋め込まれます。これは、単純な定形メール作成アプリではできないことです。クリップボード経由での登録は、クリップボードの頭100文字までなので、長い文章はおしりが切られてしまいます。何も、登録単語をJavaScriptの中で参照しなければならない理由はないので、登録単語を参照せずに生成したテンプレで新規メールを作成する用途で使うのも一つのやり方でしょう。登録単語のタップという形でしかJavaScriptは実行できませんので、JavaScriptの中で使う使わないを問わず、登録単語をタップすることにはなるのですが。Anywhereの持つJavaScript実行機能の可能性をお見せしました。非常に実用的なアプリケーションですので、興味を持たれた方は入手してみてはいかがでしょうか。Anywhereへの要望JavaScript実行機能、クリップボードのJavaScriptによる加工方面で使い込もうとすると、住所録を使った単語登録技に起因する100文字制限が邪魔に思えます。[クリップボードにあるテキスト]→[JavaScriptで加工]→[クリップボードに書き戻し][クリップボードにあるテキスト]→[JavaScriptで加工]→[openURLを実行]これに特化したモード、ないしは派生アプリケーションの開発を考えてみてはいかがでしょうか?僕しか使わなそうですけれど。Anywhereの中で書くのは正直つらい。エラーがあった場合に、詳細なエラーメッセージが表示されないし、JavaScriptを書いている途中での試行がやりづらいからです。iOSデバイス上での開発には、ExecScriptがおすすめです。JavaScriptの開発環境です。以前のエントリで、iOS上のプログラミング環境について大調査するうちに浮かび上がってきたものです。ひとりぶろぐ僕もこれを使っています。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。