URLスキーム

URLスキームが複数のアプリで同一であった時のiOSバージョンごとの挙動について

投稿日: 更新日:

結構違いがあったので、自分のためも兼ねて記しておきます。

以下、先にインストールしたものをA、後にインストールしたものをB。
URLスキームは両方とも xxx:// とします。
続きを読む »

かんたん!ツイート予約投稿アプリBuffer

投稿日: 更新日:

Bufferという投稿分散サービスがあります。

「あー、リプライ返したいけど、夜遅いから明日にしよう」
こんなとき、翌朝に投稿する必要なんてありません。

Bufferアプリなら、いま書いて、翌朝の投稿予約ができちゃいます。

Buffer for Twitter and Facebook

価格: 無料
カテゴリ: ソーシャルネットワーキング, 仕事効率化
販売元: Buffer, Inc. – Buffer, Inc.
App

続きを読む »

用途のわからないURLスキームを解説

投稿日: 更新日:

前回のnPlayerの記事にも書きましたが、時折 db-vzoakoxonupmtoj:// のような変なURLスキームを見かけます。

もっとわかりやすい文字列にすればいいのに、なんて思ったことはないでしょうか?
これ、意味もなくこんなわかりづらい文字を使っているわけじゃないんです。

 

■ 謎のdb-xxxxxxxx

このdbってDropboxのことなんです。

ちょっと思い返してください。
アプリを使い始める時に、Dropboxアプリが くるん と出てきてアクセス認証をしたことがあるでしょう?

認証をしたらまた くるん と元のアプリに戻ったはずです。
その時 db-xxxxxxxx:// のスキームで元のアプリを呼び出しているのです。

そう、あれはアプリを起動するために用意されたURLスキームではなくて、Dropbox認証をスムーズにするためのものなのです。
それを他のアプリから叩いても普通にアプリが起動してくれるので、ランチャーなどに流用されたりするというお話なのでした。

 

■ 見えてくるURLスキームの法則性

db-xxxxxxxx: Dropbox連携
fbxxxxxxxx: Facebook連携
en-xxxxxxxx: Evernote連携
xxxxxxxx-app-net-authorize: App.net連携
pocketappxxxxx: Pocket連携
xxxxxxxx-photoapplink: PhotoAppLink連携(*1)
mixiapp-xxxxxxxx: mixi連携
xxxxxxxx-textexpander: TextExpander連携(*2)

などなど。

*1 – PhotoAppLinkというのは、写真アプリなどが相互に画像をやり取りするために作られた仕組みでした。
iOS7登場に伴い名前付きペーストボードが使えなくなり、終焉を迎えています。
TiltShift GeneratorやPhotogeneなどが利用。
http://www.photoapplink.com/

*2 – TextExpanderは他にもいくつか形式があり、あまり決まった命名規則が無いようにみえます。
こちらもiOS7で名前付きペーストボードを使えなくなったあおりを受けています。

 

■ じーっとみてると見えてくる

なーんかへんなことしてるなーと思っても、探ってみると理由があります。
複数用意されたURLスキームには、それぞれの用途が想定されているのです。

xxhttpってスキームがあれば、Webのコンテンツを直接開くことが出来るだろうなって気づきます。
rtspってスキームなら、ストリーミングに対応してそうだ、と。

いろいろ楽しいですよ。
xxhttp ← 特にこのタイプのURLスキームが用意されてるアプリが一番楽しいです。ええ。

Daedalus touchのURLスキーム&パラメータ

投稿日: 更新日:

唯一無二のUIと軽快な操作性が魅力のメモアプリDaedalus touchがアップデート!
URLスキームでの操作に対応しました。

その気持ちよさは触ってみればすぐわかりますが、お手軽に知りたい人はこちらの動画をどうぞ。
http://vimeo.com/59681590
アイコンは昔の方が好きだったので少し残念です。

誰か記事を書くだろうと思ってたんですが、誰もパラメータについて書いてないようなので。

 

起動用URLスキーム

ランチャーなどから起動するだけならこれでOK。 

daedalus://

 

URLスキームアクションの種類

new-sheet : 新しい文書を作る
new-stack : 新しい書類の束(スタック)を作る
open-stack : 特定のスタックを開く
search : 検索をする

いまのところこの4つが用意されています。

他のメモアプリと違うのはスタックという概念ですね。
文章をフォルダではなく、文書の積み重ねという形で管理します。
それがスタック。

 

new-sheet : 新しい文書を作る

daedalus://x-callback-url/new-sheet?stackTitle=AAA&title=BBB&content=CCC

この例だと、AAAというスタックに、BBBというタイトルで、CCCという本文の文書を作成します。

stackTitle= 文書を作るスタックを指定(省略可)
title= 文書のタイトル
content= 本文(省略可)

stackTitleが空の場合は、現在開いているスタック内に新規文書を作成します。
開いてない場合は、スタックも新規作成します。

 

new-stack : 新しい書類の束(スタック)を作る

daedalus://x-callback-url/new-stack?title=BBB

BBBというスタックを作成します。

new-stack?title= 作りたいスタック名を指定

 

open-stack : 特定のスタックを開く

daedalus://x-callback-url/open-stack?title=BBB

BBBというスタックを開きます。

open-stack?title= 開きたいスタック名を指定

 

search : 検索をする

daedalus://x-callback-url/search?query=DDD&title=AAA

AAAというスタックの中からDDDという文字列を検索します。

query= 検索文字
title= 検索するスタック名(省略可)

titleを省略するとすべての文書から検索を行います。

 

x-callbackパラメータ

x-source : 戻り先のアプリ名
x-success : 戻り先のアプリURLスキーム
x-error : エラー時の、戻り先のアプリURLスキーム
x-cancel : キャンセルした場合の、戻り先のアプリURLスキーム

x-errorは今のところopen-stackで指定したスタックが開けなかったときに実行されます。

x-cancelはまだ使われていません。

 

注意点など

new-sheet、open-stack、searchにおいて、スタック名の指定は大文字小文字が関係ありません。
またウムラウト、トレマ、サーカムフレックスなどのダイアクリティカルマークも関係なく開けます。
new-stackの場合はちゃんと指定してください。

基本事項ですが、URLスキームのパラメータはURLエンコードが必要になります。
x-sourceに日本語アプリ名を指定する場合などにはUTF-8でURLエンコードしてください。

(例)123 testという文字列は123%20testと、スペースを%20に置き換えます。

Web便利ツール/URLエンコード・デコードフォーム – TAG index Webサイト
URLエンコードをしてくれるサイト

ver1.7で本体が無料化され、付加機能は有料アドオンで提供される形になったDaedalus touchですが、ver1.6から使っていたユーザーはアドオンが無料になる配慮がなされています。
ただしver1.6のipaファイルをバックアップしておかないと、今後もし新規インストールをする場合にはアドオンを購入することになってしまうので、注意が必要です。

ふと気づいたんですが、iOS6の端末からだと無料でver1.6をダウンロードでき…
いやなんでもないです。

 

Daedalus Touch –iCloudのためのテキストエディタ

  • Daedalus Touch –iCloudのためのテキストエディタ
  • カテゴリ: 仕事効率化, ライフスタイル
  • 価格: 無料(記事掲載時)
  • 開発元: The Soulmen GBR

App Store

クリップボード監視機能を考える

投稿日: 更新日:

ブラウザ、エディタ、ランチャーなどのアプリにクリップボード監視機能が付き、1つのデータをコピーするだけで、複数のアプリがデータを取得したよと通知を出してくる。
ひとつひとつは便利でも、これは流石に辟易してしまう。

監視をコントロールしたい

使いたい時だけ監視をして欲しいけど、なかなかそういうアプリはない。
毎回オンオフするのも面倒で、「10分経ったら切れるから」と放置している現状。

けれどiOS7で10分制限がなくなるという噂も。
延々と監視されるなんて嫌だし、毎回プロセスを殺すのも面倒だ。

そんな中、iWorkspaceはちょっといいURLスキームがある。

iworkspace://configure?clipboardmonitoring=[trueまたはfalse]

これで監視のオンオフを切り替えられる。
手放しで喜べないのは、オンオフを切り替えるために、2つのスイッチを別に用意しなくちゃいけないこと。
トグルであればスイッチは1つで済むけれど。

スイッチはどこに対してどこにあるべきか

DraftPadから呼び出して設定したなら、自動でDraftPadに戻って欲しい。

1階のテレビのスイッチが何故か2階にあったとして…
誰も2階になんて行きたくないし、1階から直接操作したくなる。

先のような設定に対してもコールバック指定が使えれば、それも可能になるかもしれない。

機能を委ねる

iWorkspaceでクリップボードを操る その2で書いたのは、別のアプリに通知機能を持たせるような動作が実現できたということ。
じゃぁ監視機能のオンオフだって、その別アプリからなるべく簡単に行えれば、それは組み込まれた機能とほとんど変わらなくなるんじゃないだろうか。

1タップで自由にクリップボード監視が使えるようになれば、他のアプリはむやみにクリップボード監視を実装しようなんて思わなくなるかもしれない。
他のアプリが通知センターへのショートカットをMyShortcutsに委ねたように、クリップボード監視を委ねるという選択肢だってある。

無制限の不自由さ

もし、本当に10分制限が無くなるようであれば、すべての開発者に考えて欲しいことがある。
水道からいつでも水が出るのは便利だが、常に水を出しておきたいわけではないのです。

iWorkspaceでクリップボードを操る その2

投稿日: 更新日:

※この記事は通知センターとバックグラウンド監視が前提になりますので、有効にしておいてください。

 

クリップボード監視機能に革新を

iWorkspaceの監視機能が素晴らしいのは、データの行先を指定出来るところにあります。
デフォルトだと、通知をタップしても、そのデータがクリップボードに復帰するだけ。

それが、設定によって激変します。
例えばDraftPadにクリップボード監視をつけるようなことも。

 

まずはDraftPadを起動できるように

draftpad:///insert?after=_Q_

→DraftPad起動 をインポート

この時アイテム編集画面で鎖マークをタップして、アイテム起動用URLをコピーしておいてください。
IMG_4089

スキームがあれば他のアプリでも構いません。

(例)thumbedit://?text=_Q_&mode=insert
(例)slpro://_Q_

 

起動URLを変換登録します

通知タップ時の設定を変更するには

iworkspace://configure?clipboardnotificationtapurl=<URL>

このような形のアイテムを登録する必要があるので、それを補助するスクリプトを作りました。

→通知挙動登録 をインポート

さっきコピーしたアイテム起動用URLをもとに、設定用スキームに変換登録してくれますので実行してください。
実行すると通知設定用のアイテムが出来ますので、タイトルは自分で分かりやすいように。

 

なぜ変換登録が必要か

通知タップ時の設定スキームには、利用したいアプリのスキームを直接書いてもうまくいきません。
URLエンコードしていてもダメ。
まず起動用アイテムを登録し、それを間接的に指定する。

通知挙動登録は、クリップボードのURLをそういった形に変換してくれます。
(ただし起動したいだけの場合は、直接draftpad:を指定しても大丈夫です)

 

使ってみよう

さて、変換登録したアイテムをタップしてください。
『設定が更新されました』というダイアログが出たら成功です。

適当な文字をコピーして、iWorkspaceの通知が出たらタップしてみて下さい。
DraftPadが起動してコピーした文字が貼りつきましたか?

すごい!と思った方は十分です。いろいろ試してください。
できない!という方は@rel0005までご報告を。

できたけどいまいちよくわかってない方は、その3 実践編をお待ちください。

 

おわび

その1 の内容を触れるにはちょっと長くなりそうだったので、次回に持ち越します。

iWorkspace

  • iWorkspace
  • カテゴリ: ユーティリティ, 仕事効率化
  • 価格: ¥100(記事掲載時)
  • 開発元: Takeyoshi Nakayama

App Store

DraftPad

  • DraftPad
  • カテゴリ: 仕事効率化, ユーティリティ
  • 価格: 無料(記事掲載時)
  • 開発元: Manabu Ueno

App Store

iWorkspaceでクリップボードを操る その1

投稿日: 更新日:

スキームからクリップボードへ

スキームで出力したものをクリップボードへ自動コピーするには、DraftsやLaunch Center Proなどを使う方法がありますが、
これはiWorkspaceでも簡単にできます。

iworkspace://launch?itemid=&clipboard=<@@>

DraftPadから呼び出す場合にはこんな具合に。
ここでは空にしていますが、itemidを指定すると、文字列をコピーした後にそのアイテムを自動実行してくれます。

 

クリップボードからスキームへ

逆に、クリップボードの内容をスキームで出力するには、いつもの見慣れた形をiWorkspaceから呼び出してやるだけです。
DraftPadならこの形。

draftpad:///insert?after=_Q_

“_Q_”でクリップボードの内容を書き出します。

 

クリップボードからクリップボードへ

さて応用編。
iWorkspaceではJavaScriptを使いクリップボードの文字列を加工して、それをまたクリップボードに出力することも可能です。
(JavaScriptの場合は_Q_ではなくCLIPBOARDを使います)

例えば、タップするだけでクリップボードの文字列をURLエンコードしたり
→URLエンコード をインポート

 

クリップボードの文字列をTinyURLで短縮したりといったものです。
→TinyURL をインポート 

(TinyURLスクリプトはhalさんの書かれたものをベースにしています)
Drafts上でJavaScriptを動作させる | hal’s Playground
お借りしたスクリプトはこちら

 

 

これらはCLIPBOARDで呼び出した文字列を加工したあとに

iworkspace://launch?itemid=&clipboard=

に書き出しているだけの簡単なものです。
インポートしたアイテムをタップすると、いつの間にかクリップボードの中身は書き換わっているはずです。

さて、これをどう使うか、という話はまた明日。

iWorkspace

  • iWorkspace
  • カテゴリ: ユーティリティ, 仕事効率化
  • 価格: ¥100(記事掲載時)
  • 開発元: Takeyoshi Nakayama

App Store