我两次都试了,都做了同样的事。有什么区别(只是为了利息)吗?
我有一个WebView,它加载本地数据,并能够提交这样的URL。
示例:
webView.loadUrl("file://storage/emulated/0/folder1/folder2/hello.html"发布于 2014-08-17 22:30:00
按照规范执行file://storage/emulated/0/folder1/folder2/hello.html是无效的。这里的storage应该表示主机名。
在使用文件URI方案时,您可以选择忽略表示路径的主机。这是在wiki页面上描述的,我在下面引用它。
文件URI的形式为
file://host/path
其中,主机是可访问路径的系统的完全限定域名,path是表单目录/目录/./ name的分层目录路径。如果省略了主机,则将其视为"localhost",即解释URL的机器。注意,当省略主机时,斜杠不会被省略("file:///foo.txt“是有效的,而"file://foo.txt”不是,尽管一些解释器设法处理后者)。
我的猜测是,webView.loadUrl很宽容,并且接受不符合规范的文件URI。Uri.fromFile()还提供了一个关于正确格式的示例。
示例:"file:///tmp/android.txt“”
发布于 2014-08-17 22:05:23
使用schema://将模式与路径分离的URL定义的差异。接下来您将指定路径,如果路径是绝对的,那么它以/开头。Unix上正确的url
"file:///storage/emulated/0/folder1/folder2/hello.html"但它可能在Windows上
"file://c:/storage/emulated/0/folder1/folder2/hello.html"发布于 2014-08-17 22:05:37
file://是一个URL前缀,就像http://或https://一样。
如果您有三个斜杠,那么如果只有两个斜杠,那么文件路径将是/storage/emulated/...而不是storage/emulated/...。
前者在storage文件夹(根文件夹)中查找名为/的文件夹,并从那里继续。
后者应该在工作目录中查找一个名为storage的文件夹,然后从那里继续。我不知道为什么不行。
https://stackoverflow.com/questions/25354048
复制相似问题