2

両方試しましたがどちらも同じでした。違いはありますか(興味のみ)?

ローカル データをロードする WebView があり、そのような URL を渡すことができました。

例:

webView.loadUrl("file://storage/emulated/0/folder1/folder2/hello.html"
4

3 に答える 3

4

を使用してスキーマがパスから分離された URL 定義の違いschema://。次にパスを指定します。パスが絶対パスの場合は で始まります/。Unix の正しい URL

"file:///storage/emulated/0/folder1/folder2/hello.html"

しかし、それはWindows上にある可能性があります

"file://c:/storage/emulated/0/folder1/folder2/hello.html"
于 2014-08-17T22:05:23.447 に答える
3

仕様通りに行くの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」

于 2014-08-17T22:30:00.540 に答える
2

file://http://またはと同様の URL プレフィックスhttps://です。

スラッシュが 3 つある場合、ファイル パスは、スラッシュが 2 つしかない場合/storage/emulated/...の代わりに になります。storage/emulated/...

前者は、フォルダー (ルート フォルダー)内で呼び出さstorageれたフォルダーを探し、そこから続行します。/

後者storage、作業ディレクトリで呼び出されたフォルダーを探し、そこから続行する必要があります。なぜそうならないのかわかりません。

于 2014-08-17T22:05:37.087 に答える