Drafts だけで文字列の URL エンコード・デコードをする方法

iPhone で URL スキームを使ってアプリ同士を連携させようとする時、文字列に URL エンコードという処理をしないとうまく機能しないことがよくあります。その逆に、他の人が考えた URL スキームやブックマークレットの仕組みを学ぼうとしても、エンコード済みの文字列は解読が難しく、理解するためにはいったんデコードと呼ばれる処理が必要になります。こうした作業を Drafts だけで行う URL アクションを作りました。

目次

  1. エンコード用
  2. デコード用

エンコード用

Drafts にはもともと URL アクションを実行する際に、{{文字列}} とすることで文字列をエンコードする機能が備わっているので、それを使えば簡単にできます。

次のコードを、「Custom Actions」の「URL Actions」に登録します。

Encode:

drafts://x-callback-url/create?text={{[[draft]]}}

Drafts にインポート

あとはエンコードしたい文字列を入力した状態で、「Encode」のアクションを実行。

このように URL エンコードされた文字列で新たなメモが作成されます。

デコード用

続いて、デコード用の URL アクションのコードです。

Decode:

drafts://x-callback-url/create?text=dummy&action=Copy%20to%20Clipboard&afterSuccess=Delete&x-success=drafts://x-callback-url/create?text=[[draft]]

Drafts にインポート

2013-09-17 追記: インポート用の URL にエンコードの誤りがあったので修正しました。maxi さん (@rel0005)ご指摘ありがとうございました!

コードの前半部分に当たる、dummy という文字列のメモを作り、それをクリップボードにコピーするという部分は文字通りダミーです。1番最後の x-success= 以下で、文字列のエンコードを解く作業を行っています。このため、アクション実行に伴いクリップボードの中身が dummy という文字列に置き換わることにだけご注意ください。

先ほどエンコードした文字列を、今度はデコードしてみます。「Decode」のアクションを実行します。

このように、エンコード前の文字列に復元されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です