多機能テキストエディタ『Textforce for Dropbox』がアップデートし、URLスキームにコールバックが追加されて他アプリとの連携の幅がさらに広がりました。使用例の紹介やURLスキームの整理・まとめ、最後にブックマークレットへの活用を考えてみました。
テキスト編集 Textforce for Dropbox 2.12.0
仕事効率化, ビジネス
App Storeで詳細を見る
追加された「コールバック」を使うと、ホームボタンをダブルタップしてApp Switcherから指定することなく、連携元のアプリに戻ることができます。
callback=[コールバックしたいアプリのURLスキーム]
※ユニバーサルアプリですがiPadではこのURLスキームを利用できません
たとえば、Sylfeedの記事をブログで紹介するHTMLコードをTextforceに連携し、HTMLプレビュー後にSylfeedに戻って来ることが可能になります。
SendTo機能のプロファイル例
textforce://file?path=/blog.html&method=write&after=quick_look&callback=sylfeed:&text=%3ca%20style%3d%22color%3a%230070C5%3b%22%20href%3d%22${link}%22%20target%3d%22_blank%22%3e%e2%97%86%20%20${title}%20%20%ef%bc%88%20via%20${source}%20%ef%bc%89%3c%2fa%3e%3cbr%3e%3cbr%3e
Sylfeedで記事閲覧画面で共有メニューのSendToから、登録したプロファイルを選択します。すると、TextforceにHTMLコードが渡されプレビュー表示されます。完了したらキャンセルをタップ。
これでSylfeedの画面に戻って来ることができました。HTMLコードを渡した後にTextforceにとどまって編集したい場合はURLスキーム内のafterを調整します(後述)。
[2013年3月28日追記]バージョン2.12.0からパラメーターのafterにcallbackという値を設定できるようになりました。指定したファイルに書き込んだ後「キャンセル」や「Close」ボタンを押さず、自動的に指定アプリに戻ります(詳細後述)。
TextforceのURLスキームまとめ
起動以外のパラメーターを指定する場合の基本形は次のとおりです。pathとtextは必須で、これらはURLエンコード(UTF-8)が必要です。
textforce://file?path=[Dropbox格納先ファイル]&text=[連携するテキスト]
追加されたコールバック以外にもオプションで指定できるパラメーターです。&で繋げていきます。
mode= | a:ファイル末尾に追加(省略時) w:ファイルを上書き 通常は末尾に追加するので省略して構いません。 |
after= | edit:編集モード quick_look:HTMLプレビュー edit_by_atok:ATOKアプリで編集(インストール時) callback:自動コールバック(Ver. 2.12.0) 指定しない場合は何もしません。 |
callback= | アプリURLスキーム afterでquick_lookを指定された場合は左上の「キャンセル」、それ以外の場合は「Close」ボタンで指定アプリに戻ります。 afterでcallbackが指定された場合は[Dropbox格納先ファイル]に書き込み、直ちに指定アプリに戻ります。(Ver. 2.12.0) |
次のURLスキームは、「[連携するテキスト]を[Dropbox格納先ファイル]に保存・プレビューの後、完了するとSylfeedに戻る」という意味になります。
textforce://file?path=[Dropbox格納先ファイル]&text=[連携するテキスト]&after=quick_look&callback=sylfeed:
なお、コールバックを使っても、Textforceに備わっているATOK連携やWISDOM、大辞林との連携に影響はありません。詳細はアプリ公式ページでご確認を。URLスキーム以外にも便利な多くの機能が詳細に解説されています。
ブックマークレット開発者の方々へ
Textforceの出力URLスキームにコールバックを追加するとブックマークレットを実行したSafariのページに戻って来ることができます(Safariに戻ることには一長一短ありそうですが)。
‘textforce://file?path=/blog.html&method=write&after=quick_look&text=’ +
encodeURIComponent(htmlcode) + ‘&callback=’+encodeURIComponent(location.href);
ちなみに、ブランクページでブックマークレットを実行するとlocation.hrefは取得できないのでコールバックせずにTextforce内にとどまることになります。
アプリ開発者に感謝
今回の件は以下のようなツイートがキッカケでしたが、この他にも本アプリの開発者 @ytka さんはユーザの声に真摯に耳を傾け、親身にサポートしてくださる方です。トラブルで困ったり、新機能のアイディアなどあれば直接お願いしてみてはいかがでしょうか。
@hondamarlboro @donpy おぉ。面白い使い方ですね。Textforceも callback対応を考えます!
— yutakaさん (@ytka) 2013年3月5日