Androidスマホを使ってhtmlを作り、スマホからウェブページを更新する際、htmlファイルが外部sdカードの中に保存されているとうまくプレビューができない。Chromeでローカルファイルを見るにはアドレスバーに「file://」+「ファイルの絶対パス」(例:file:///storage/mywebpage/mypage.html
)を入力する。しかし、外部sdカードに入っているファイルはこの方法では見ることができない。Chromeには外部sdにアクセスする権限がないからである。
解決方法としては3つある。1つ目はChromeに外部sdに対するアクセス権限を与えること。2つ目はファイルマネージャーを介してChromeで開くこと。3つ目は開きたいファイルを内部ストレージに移すことである。
1つ目は理想的だが一筋縄ではいかない険しい道だ。2つ目は例えばASUSのファイルマネージャーを使うと外部sdの中のファイルもChromeで見ることができる。ただし例えばhtmlファイルを見るとき、cssファイルが反映されないという問題が起こる。となると3つ目の**「ファイルを内部ストレージに移す」が最も手っ取り早そう**である。特にスマホでウェブページを作りたい方は、外部sdではなく内部ストレージで作業した方がいいだろう。
##同様の報告
https://m.chiebukuro.yahoo.co.jp/detail/q14109504544
▲androidでSD内のhtmlファイルを標準ブラウザで読み込んだのですが、リンク先にアクセスできません。(Yahoo!知恵袋)
##関連リンク
https://play.google.com/store/apps/details?id=com.asus.filemanager
▲ASUS ファイルマネージャー
ちなみにこれでSD上のhtmlを閲覧したとき、パスは次のようになった。 content://com.asus.filemanager.OpenFileProvider/file/storage/DEA3-D49B/download/mywebpage.html
http://d.hatena.ne.jp/m-kawato/touch/20120101/1325385031
▲SDカード上のHTMLファイルをAndroidのブラウザで開く
https://www.kanzaki.com/docs/html/htminfo-uri.html
▲URIとファイルディレクトリ
##補足
Yahoo!ファイルマネージャーでは内部ストレージ・外部SDのhtmlファイルをcssが反映された状態で見ることができた。
ただし、htmlファイルを開くアプリがAndroidシステムのHTMLビューアしか選択肢がなく、Chromeでは見ることができなかった。
Chromeの場合ローカルファイルやインデックスをブックマークに登録できて便利だが、最低閲覧できればよいという場合はYahoo!ファイルマネージャーを使うのもいいかもしれない。この辺はもう好みの問題だろう()。
▼file://で表示したローカルファイルのインデックス
ルート直下のディレクトリがsdcardとなっていますが、内部ストレージです。Androidの仕様らしい。
##環境
Android 6.0.1
ASUS_Z010DB
Chrome/63.0.3239.111
ASUSファイルマネージャー 2.2.0.199
HTMLビューア 6.0.1(Androidシステム)
Yahoo!ファイルマネージャー 1.5.11