Safariで始めるiOSプログラミング(4):URLスキームで他力本願


スライドカーソル搭載

Leoにスライドカーソルを追加しました。指でスライドすると、それに合わせカーソルが移動します。二本指だと範囲選択。DarkRoomに似てますけど、使っているのは異なるテクニックです。それと一行目でmaximum-scaleを設定し、画面の拡大を封じました。

<meta name=viewport content=initial-scale=1,maximum-scale=1>
<style>
#Leo{
font-size:large;
background:ivory;
width:100%;
height:100%;
white-space:pre-wrap;
}
</style>
<title>Leo</title>
<textarea id=Leo></textarea>
<script>
var p=0;
Leo.ontouchstart=Start;
Leo.ontouchmove=Move;

function Start(e){
p=e.touches[0].pageX;
}

function Move(e){
f=e.touches.length-1;
x=e.touches[0].pageX;
if(x-p>4){document.getSelection().modify((f)? "extend":"move","right","character");p=x;}
if(p-x>4){document.getSelection().modify((f)? "extend":"move","left","character");p=x;}
}
</script>

登録リンクはこちら→ http://tinyurl.com/hng7l3u
訂正:iPhoneの画面に合わせてなかったのを修正。


Simplenoteに保存

Simplenote 4.3.1
分類: 仕事効率化,ユーティリティ
価格: 無料 (Automattic)

Leoの弱点はテキスト保存。書きかけの文章を残す算段がほしい。出来れば他のデバイスとも同期したい。そうなるとまずはSimplenoteです。ブックマークレットでテキストを転送します。URLスキームを使うアクションは location だけで実現できます。

javascript:location="simplenote://new?content="+encodeURIComponent(Leo.value);


Evernoteに保存

Evernote 7.10
分類: 仕事効率化,ユーティリティ
価格: 無料 (Evernote)

Evernoteはコードを渡すと文字落ちするので、本文をHTML化する必要があります。反対に考えると、HTMLタグが使えて表現力豊かとも言える。

javascript:title=Leo.value.split("\n")[0];s=Leo.value.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/ /g,"&#32;").replace(/\n/g,"<br>");location="evernote://x-callback-url/new-note?type=html&title="+encodeURIComponent(title)+"&text="+encodeURIComponent(s);
本文の一行目をタイトルとします。「title=Leo.value.split("\n")[0];」。改行(\n)で本文を分割し、最初の行を取り出しています。locationでURLスキームを起動。


Google検索

Safari自身でネット検索もできます。複数行でも改行を無視して検索。ということは、キーワードの組み合わせを試行錯誤できる。locationは万能。

javascript:location="https://www.google.co.jp/search?q="+encodeURIComponent(Leo.value);


まとめ

ここあたりTextwellでアクションを作るのといっしょ。locationでURLスキームを呼べばアプリが起動する。URLアドレスならサイトを開く。シンプルだからこそ出来ることは多い。スライドカーソルが付くと、書きやすさが違います。書き間違えても「後で直せばいい」と思えるから、打鍵に迷いが無い。下書き環境として申し分なくなってきたかも。