Skip to content

WebView加载本地存储的网页

本地存储,包括app内部的存储,手机公共的存储位置。

为了演示方便,我们把assets里的html文件复制到app存储或SD卡上。 再去显示这个网页。

加载app存储中的网页

我们把网页文件放到app的私有目录中。

路径为:/data/user/0/com.rustfisher.tutorial2020/files/sample.html

url要以file:// 开头: file:///data/user/0/com.rustfisher.tutorial2020/files/sample.html

设置WebSettings,允许读取文件等等。

String url = "";
File htmlFile = new File(getFilesDir(), "sample.html");
Log.d(TAG, htmlFile + "\nfile exits:  " + htmlFile.exists());
url = "file://" + htmlFile.getAbsolutePath();
Log.d(TAG, "url: " + url);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowContentAccess(true);
webSettings.setDomStorageEnabled(true);
webView.loadUrl(url);

一定不能忘记file:// 开头

加载sd卡中的网页

与app内部存储类似,只需要修改路径。

例如在模拟器上的url为 file:///storage/emulated/0/sample.html

示例代码

作者: RustFisher
联系: rf.cs@foxmail.com
博客: rustfisher.com | RustFisher cnblog
示例: AndroidTutorial Gitee, Tutorial Github
链接: https://www.an.rustfisher.com/android/ui/view/webView/load-local-html/
一家之言,仅当抛砖引玉。如有错漏,还请指出。