dataスキームへのリンクを短縮URLに渡す
dataスキームを使ってアプリの内容を記述すれば,ローカルアプリをリンクに埋め込むことができる.
iPhone のルート検索ショートカット作成アプリをCSS対応+完全ローカル化 | 忘れたらググればいい
ということは,短縮URLの転送先をURLスキームにしてしまえば文字数制限のあるtwitter上でもアプリ配布できちゃうんじゃね? ということで調べてみた.
tinyURL以外はdataスキームそのままはできない
すでに調べている人がいて,tinyURL以外の短縮URLではdataスキームが登録できなかったり, 登録できても "http://" を勝手につけてしまうようになっている.
URL 短縮サービスで data スキームを短縮する (良い子はマネしちゃダメ) - 何にしても生っかじりの朴念仁
tinyURLはそのまま転送するが,文字数制限がある
そこでtinyURLでアプリを登録してみようとしたが,長すぎて無理だった. ちなみに画像埋め込みがないver.1.0は登録できた. → http://tinyurl.com/6wdjrvc
dataスキームそのままはあきらめて,文字数制限が長い短縮URLを使う
"http://" が頭に付加されてしまうが,文字数制限が長い短縮URLとして pixiv の p.tl を使う.
そこで… 数ある短縮URLサービスの中で、POSTメソッドを使っているサービスを見つけました。 Pix◯vが運営するp.◯lです。 URLの文字数が最大約32000文字のものまで短縮できるため、小さい画像であれば1つの短縮URLで十分間に合います。
p.tlでもダメだった...
アイコンに使っているpngファイルがbase64エンコードで29KBもある上に2回出ててくるので全体で89KBにもなり,さすがに入りきらなかった. しょうがないので,完全ローカル化はあきらめる. アイコンの出現を1回減らして,アプリインストール時 (ホーム画面に追加する時) だけオンラインにする,という制限を加えた.
88613文字が16文字に!
減らしたバーションで短縮してみたら,できた! http://p.tl/Wxmz
開いたリンクの "http://" を消せばアプリが表示される...のだけれど, iPhoneのSafariのロケーションバーは選択しても,どうしてもURLの末尾にしかカーソルが合わず, 先頭に持っていくのは相当時間がかかる.
ここまで来たのに一手間増える...
結局,適当なテキストエディタに一旦コピーして,"http://" を消してからもう一回コピーしてSafariで開く,しか対応が思いつかなかった. 専用bookmarkletを用意する方法もあるだろうけど,それだとtwitterでの配布には向かない. せっかくここまで行けたので,なんとかならんかなぁ.
twitterで配布 (2012/02/08 追記)
twitterでiPhoneアプリもどきを配布してみる http://t.co/3ofYDmQy | 1.URLを開く http://t.co/8Xe15CWw 2.転送先のURLから "http://" を消して開く 3.表示された画面で"ホーム画面に追加"でインストール完了.