SKK
SKK

Reputation: 5271

load somefile.html file from internal storage to a webview of an app

I have a file in the internal storage of my tablet. /myfolder/subfolder/index.html. How can i load this into a webview of an app.

i have tried

 webview.loadURL("file:///myfolder/subfolder/index.html"); 

but it is not giving the expected result. it says web page not available.

I know how to load from the asset folder or from the web/internet. but i need to load local file into webview. is it possible.?

Upvotes: 15

Views: 25693

Answers (5)

Zafar Hussain
Zafar Hussain

Reputation: 268

  File gameDir = new File("/data/data/" + getActivity().getPackageName() + "/games");
    gameDir.mkdirs();

    // Create and execute the background task.
    mTask = new DownloadTask();
    mTask.execute("https://github.com/gabrielecirulli/2048/archive/master.zip", "/data/data/" + getActivity().getPackageName() + "/games/2048.zip");




    mWebView.getSettings().setJavaScriptEnabled(true);
                Toast.makeText(MainActivity.this, path+"/index.html", Toast.LENGTH_SHORT).show();
                mWebView.loadUrl("file:///data/data/com.example.zipfiledownload/games/2048-master/index.html");

Upvotes: 1

SKK
SKK

Reputation: 5271

I was able to solve my problem by using the following as path:

webview.loadURL("file:///mnt/sdcard/myfolder/subfolder/index.html");

Upvotes: 7

Venkatesh S
Venkatesh S

Reputation: 5494

Put your html files in asset folder access the page like given below.

 webview.loadURL("file:///"+mContext.getFilesDir()+"/myfolder/subfolder/index.html"); 

you have to mention the android asset while accessing html pages in android assets.

Upvotes: 1

Sahil Mahajan Mj
Sahil Mahajan Mj

Reputation: 11141

An app cannot access data from the Internal storage stored by another app. Permissions are applied to internal storage that make data written by an application not accessible outside of that application (your app cannot read anything written by another app).

So, if you are accessing a file that is not created by your app, AFAIK, you cannot have access to it.

BTW, you could access the file from the internal storage as below,

webview.loadURL("file:///data/data/com.yourproject.example/files/index.html");

Upvotes: 7

duggu
duggu

Reputation: 38409

File file = new File("/data/data/packagename/foldername/");
webView.loadUrl("file:///" + file);

Upvotes: 24

Related Questions