干し石榴長文用

長文以外はTumblrへ徐々に移します。

Webのローカルファイル書込み系て今どうなってるんだろう

仕事でiOSネイティブアプリを(所謂ハイブリッドアプリではなく本当に)Webアプリに書き直しているのですが、
ロードした画像をViewController間で引き渡すみたいなことが難しいし、
サーバーにPOSTしようにもログインして使うアプリではない上に
画像ファイルともなると通信が無駄にかかってしまうということで、
漠然とHTML5ならローカル保存だと思い仕様を調べてみました。

window.requestFileSystem || window.webkitRequestFileSystem

がエントリーポイントということが分かりました。
これは2013年の記事なので一応大元のW3Cも見ておこうと思ったのですが、

Work on this document has been discontinued and it should not be referenced or used as a basis for implementation.

とのことで2014年4月から頓挫しているっぽいです。
File API の方に取り込まれたのかと思いましたがそんなこともなさそう。
うーんなんとも

実際の実装状況はどうなんだろうと思い各ブラウザで試したところ、
Chrome に window.webkitRequestFileSystem が残っているだけで、
他のブラウザの最新版では未実装というか無実装でした。

後からハイブリッドアプリにできるようにApache Cordovaで作っているので、
もしやFileプラグインでいけるのではと思いましたが、

冒頭の説明によると結局W3C仕様のラッパーらしいので駄目そう。

仕方ないので、アンチパターンとは知りつつも
画像をCanvasで必要最低限まで縮小してDataURI化したものを
Session Storageに突っ込んでページ間で共有することに。
これだと初回保存時にユーザーへ許可を求めるダイアログも出ないので要件的にも良い。

余談なのですが、Data URI scheme - Wikipedia て要は冒頭以降はただのBase64なのですが、
URI(統一資源識別子)とは(哲学)