reliphone

ATOK Pad for iOSの新スキーム連携

  2015/01/30

(※この記事は旧サイトの記事を移転したものです)

iOS7の仕様変更を受け、ATOK Padがver.4.7でテキストの受け渡し方法を変更しました。

いままでは名前付きペーストボードという方法でしか扱えず、連携にはアプリ側での対応が必要でしたが、今回の変更でURLスキームを使った比較的自由なやり取りが可能になっています。
ただし制限もあるので、そのあたりをまとめ。


ATOK Pad

1,300円
販売: JustSystems Corporation
評価: 3.5(1,506件)
iPhone/iPadに対応


ss1

App

 

URLスキームでの起動

atokpad2://com.atok.atokpad?src=drafts://x-callback-url/create

このURLスキームをランチャーなどから実行すると、ATOK Padを起動し、入力した文字をDraftsに渡すことができます。
(正式な書式では drafts://x-callback-url/create?text=[文章] という形であり、createだけで終わるのは本来であれば間違いですが、コールバック時にATOK Padがtext=以下を付け加えて返してくれます)

基本的にはURLスキームにtext=という書式のパラメータがあるものだけ利用できると考えてください。

同様にsrc=以下を変更すればTweetBotもちょっと怪しいですが動いてくれます。

atokpad2://com.atok.atokpad?src=tweetbot:///post&maxlength=140

しかしDay OneやMomentoやLINEではうまく動作をしてくれません。
URLスキームの書式が異なっていたり、ATOK Padが返すselection={15, 0}といった、文字の選択範囲情報が邪魔するためです。

 

非対応アプリにDrafts経由で渡す

さてDraftsではその辺をうまく処理してくれているようなので、非対応アプリの連携にはDraftsを中継することにします。
間に挟みはしますが、中継自体は自動です。


Drafts – Quickly Capture Notes

500円
販売: Agile Tortoise
評価: 4.5(29件)


ss1

App

 

まずは使いたいアプリをDraftsに設定しておきます。
URL Actionsからアクションを新規作成してください。
(※アクション名はアルファベットのみにしてください。半角スペースや日本語はURLエンコードが必要になります)

dayone://post?entry=[[draft]]

momento://command/newMomento?text=[[draft]]

line://msg/text/[[draft]]

例はDay One、Momento、LINE。
Draftsを間に挟むことによって、URLスキームでテキストを受け取れるものであれば、どのアプリでも使えるようになります。
[[draft]]の部分が中継されたテキスト本文に置き換えられます。
これらのアクションを作成したら、下のURLスキームをランチャーなどから実行するだけ。

atokpad2://com.atok.atokpad?src=drafts://x-callback-url/create&action=DayOne

これでATOK Padを起動してDay Oneに入力内容を渡すことができたはずです。
DayOneの部分は任意のアクション名を指定してください。
さてATOK Padから指定のアプリに飛ばせるようになったでしょうか。

※ 動かない場合はDraftsのSettingsにあるURL SecurityのAllow URLs to trigger actions?を確認してください。
ここがオフだと動きません。

 

Drafts→ATOK Pad→Drafts

ランチャーからではなく、Draftsで編集中の内容をATOK Padに渡して、またDraftsに戻りたい場合は&text=と&title=を追加します。

atokpad2://com.atok.atokpad?src=drafts://x-callback-url/create&text=[[draft]]&title=Drafts

これをDraftsのURL Actionsに設定すればいいです。

&text=[[draft]]はDraftsの本文をATOK Padに渡すためのもの、
&title=DraftsはATOK Padのタイトル部分をDraftsに変更するもの。

 

おわり

完全ではありませんが、今回のアップデートで殆どのアプリに対してATOK Padからテキストが送れるようになりました。
特にアプリ側での対応が望み薄だった、海外アプリと連携できるようになったのが嬉しいですね。

もしもDraftsをかまさないでもいけるやり方があれば、ぜひ教えてください。

 

訂正ツッコミを下さいました@a_i_t_aさんに感謝。

【おまけ】
Drafts用アクション → インポート

この記事のQRコード ATOK Pad for iOSの新スキーム連携

コメントを残す

【メールアドレスの入力は任意です】