将somefile.html文件从内部存储加载到应用程序的webview

时间:2013-01-31 11:22:59

标签: android webview

我的平板电脑的内部存储空间中有一个文件。 /myfolder/subfolder/index.html。如何将其加载到应用程序的webview中。

我试过了

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

但它没有给出预期的结果。它说网页不可用。

我知道如何从资产文件夹或从网络/互联网加载。但我需要将本地文件加载到webview中。是否可能。?

5 个答案:

答案 0 :(得分:24)

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

答案 1 :(得分:7)

应用无法访问其他应用存储的内部存储中的数据。权限应用于内部存储,使应用程序写入的数据无法在该应用程序外部访问(您的应用程序无法读取其他应用程序编写的任何内容)。

因此,如果您访问的文件不是由您的应用程序AFAIK创建的,则无法访问该文件。

顺便说一句,你可以从内部存储器访问文件,如下所示,

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

答案 2 :(得分:6)

我能够通过使用以下路径来解决我的问题:

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

答案 3 :(得分:1)

将您的html文件放在资产文件夹中,访问下面给出的页面。

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

你必须在访问android资产中的html页面时提及android资产。

答案 4 :(得分:1)

  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");