Loading html file from local folder into webview

GAMA picture GAMA · Apr 19, 2012 · Viewed 58.3k times · Source

I'm new to Android development.

I want to load a html file into a webview.

Note that there are so many relevant questions on SO like this, but they all deal with getting **.html* from assets folder.

But I want to load html file from local folder, say "D://abc.html" because if my html is around 10Mb then corresponding apk size also goes upto 10mb.

Any help appreciated.

EDIT

I tried webView.loadUrl("file:///D:/Projects/myWebsite/index.html");

but it gives Web page not available and File not found error.

Answer

Tony the Pony picture Tony the Pony · Apr 19, 2012

You can use:


   WebView webView = // ...

   webView.loadUrl("file:///myPath/myFile.html");

In an Android application, files can be read from 3 types of locations:

  • Internal storage: Each app has its own, file names are relative to this location. URL takes form file:///myFolder/myFile.html

  • External storage: Needs permission and may not always be available. Get the root folder by calling Environment.getExternalStorageDirectory(). So, construct the URL using: String url = "file:///" + Environment.getExternalStorageDirectory().toString() + File.separator + "myFolder/myFile.html"

  • Assets: Stored in the apk. Read-only access. URL takes form file:///android_asset/myFolder/myFile.html (See also Loading an Android Resource into a WebView)