我必须将现有的html文件加载到位于文件系统中此路径的WebView
中:
/data/data/com.example.example/files/file.html
但是,当WebView
加载它时,我什么也看不见。
谁能帮我?
WebView
代码(假设路径是我上面写的路径):
WebView webView = (WebView)findViewById(R.id.webView1);
File htmlFile = new File(path);
if(htmlFile.exists())
{
webView.loadUrl(htmlFile.getAbsolutePath());
}
答案 0 :(得分:43)
尝试此操作,添加file:///
并执行一些不同的操作:
WebView webView = (WebView)findViewById(R.id.webView1);
webview.loadUrl("file:///data/data/com.example.example/files/file.html");
但是,您可以将文件放入源代码中的assets
文件夹中,然后执行此操作,而不是这样做:
WebView webView = (WebView)findViewById(R.id.webView1);
webview.loadUrl("file:///android_asset/file.html");
答案 1 :(得分:22)
html文件应放在assets文件夹中,该文件夹属于项目的根目录。
所以在eclipse的情况下移动你的文件
assets/index.html
在Android Studio项目中使用此文件夹:
/app/src/main/assets/index.html
现在使用
WebView wv= (WebView)findViewById(R.id.webView1);
wv.loadUrl("file:///android_asset/index.html");
答案 2 :(得分:6)
您需要实现ContentProvider以将本地文件映射到uris,如此链接中所述how to display a local file into Android Webview
或者您只需从Assets文件夹中加载任何html页面,如下所示:
WebView wv= (WebView)findViewById(R.id.webView1);
wv.loadUrl("file:///android_asset/yourfile.html");
wv.getSettings().setJavaScriptEnabled(true);
答案 3 :(得分:0)
试试这个:
web = (Webview) findViewById(R.id.webview);
web.setWebClient(new WebViewClient());
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setAllowFileAccess(true);
web.getSettings().setAllowFileAccessFromFileURLs(true);