16

我的平板电脑的内部存储器中有一个文件。/myfolder/子文件夹/index.html。我如何将其加载到应用程序的 web 视图中。

我试过了

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

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

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

4

5 回答 5

25
File file = new File("/data/data/packagename/foldername/");
webView.loadUrl("file:///" + file);
于 2013-01-31T11:33:07.713 回答
8

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

webview.loadURL("file:///mnt/sdcard/myfolder/subfolder/index.html");
于 2013-01-31T12:09:42.130 回答
7

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

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

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

webview.loadURL("file:///data/data/com.yourproject.example/files/index.html");
于 2013-01-31T11:35:29.637 回答
1

将您的 html 文件放在资产文件夹中,访问如下所示的页面。

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

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

于 2013-01-31T11:28:06.480 回答
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");
于 2019-02-10T18:13:10.033 回答