SDカード上のHTMLファイルをAndroidのブラウザで開く

Webページの内容をローカルに保存して、Android機で見るという状況を考えます。
オフラインで見るだけならRead It Laterなどの手段もありますが、認証つきサイトだとローカル保存できないといった制約があるので、ここではPC上のブラウザでページを保存→SDカードにコピー→Android上のブラウザで開くという手順を取ることにします。
(これだけでも十分めんどくさいですが…)

…が、Androidの標準ブラウザには「ファイルを開く」という操作がない!

ということで、SDカードに保存したHTMLファイルをAndroid上のブラウザから開く方法について少し実験してみました。

検証環境は、EVO 3D (ISW12HT, Android 2.3.4, ファームウェアバージョン 1.09.970.5) です。

HTMLファイルの準備

ここでは実験として、以下のような小さいHTMLファイルを用意します。
hello.html:

<html>
  <head><title>Test</title></head>

  <body>
    <h1>Hello, world!</h1>
  </body>
</html>

作成したHTMLファイルを、Android上の /sdcard/tmp/hello.html として保存します。

ブラウザからローカルファイルを開く

標準のブラウザでは「ファイルを開く」のようなメニュー項目が見当たらないので、そもそもそういう機能がないのでは? とも思いましたが、試しに file:///sdcard/tmp/hello.html と入れたら普通に開けました。


ファイルマネージャから開く

とはいえ、HTMLファイルのフルパスを手打ちするのは面倒なので、ファイルマネージャ経由で開くことを考えます。

まずは、私が普段使っているASTROファイルマネージャで試してみます。

hello.htmlをタップすると、選択したファイルを開けるアプリの一覧が出ますが、残念ながらこの中にはブラウザはなし。ASTROに付属するHTMLビューワでも一応見れるには見れますが、一般のWebサイトではレイアウトが崩れるのが多いのでイマイチ実用的ではありません。

ではほかのファイルマネージャの場合はどうだろう? ということで、たまたまAndroid Marketで目についたRhythm Softwareの「ファイルマネージャ」(以下Rhythmファイルマネージャ) を試してみました。

こちらは、選択肢にFirefoxが出ています。

今回試した環境では、標準のブラウザに加えてFirefoxOpera Miniを入れています。ASTROではこのうちどれも選択肢に出ず、RhythmファイルマネージャではFirefoxだけ出るという結果になりました。この違いがどこから来るのかはよく分かりませんが、いずれにしても今回試した範囲では標準ブラウザで開くことはできませんでした。

Android Marketにはファイルマネージャの類のアプリは山ほどあるので、中には期待する挙動をするものもあるかもしれませんが、面倒なので一旦ここで打ち切り。
とりあえずの結論としては、file://+フルパス以外の方法でローカルのHTMLファイルを開くのは簡単には行かないということで。