両方試しましたがどちらも同じでした。違いはありますか(興味のみ)?
ローカル データをロードする WebView があり、そのような URL を渡すことができました。
例:
webView.loadUrl("file://storage/emulated/0/folder1/folder2/hello.html"
両方試しましたがどちらも同じでした。違いはありますか(興味のみ)?
ローカル データをロードする WebView があり、そのような URL を渡すことができました。
例:
webView.loadUrl("file://storage/emulated/0/folder1/folder2/hello.html"
を使用してスキーマがパスから分離された URL 定義の違いschema://
。次にパスを指定します。パスが絶対パスの場合は で始まります/
。Unix の正しい URL
"file:///storage/emulated/0/folder1/folder2/hello.html"
しかし、それはWindows上にある可能性があります
"file://c:/storage/emulated/0/folder1/folder2/hello.html"
仕様通りに行くのfile://storage/emulated/0/folder1/folder2/hello.html
は無効です。storage
ここではホスト名を表す必要があります。
ファイル URI スキームを使用している間、パスを表すホストを無視することを選択できます。これは、以下に引用する wiki ページで説明されています。
ファイル URI の形式は次のとおりです。
ファイル://ホスト/パス
ここで、host はパスにアクセスできるシステムの完全修飾ドメイン名であり、path は directory/directory/.../name の形式の階層ディレクトリ パスです。host を省略すると、URL が解釈されるマシンである "localhost" と見なされます。ホストを省略する場合、スラッシュは省略されないことに注意してください (「file:///foo.txt」は有効ですが、「file://foo.txt」は有効ではありませんが、一部のインタープリターは後者を処理できます)。
私の推測では、webView.loadUrl は寛大で、仕様に準拠していないファイル URI を受け入れます。Uri.fromFile()も正しい形式の例を提供します。
例:「file:///tmp/android.txt」
file://
http://
またはと同様の URL プレフィックスhttps://
です。
スラッシュが 3 つある場合、ファイル パスは、スラッシュが 2 つしかない場合/storage/emulated/...
の代わりに になります。storage/emulated/...
前者は、フォルダー (ルート フォルダー)内で呼び出さstorage
れたフォルダーを探し、そこから続行します。/
後者はstorage
、作業ディレクトリで呼び出されたフォルダーを探し、そこから続行する必要があります。なぜそうならないのかわかりません。