我的平板电脑的内部存储器中有一个文件。/myfolder/子文件夹/index.html。我如何将其加载到应用程序的 web 视图中。
我试过了
webview.loadURL("file:///myfolder/subfolder/index.html");
但它没有给出预期的结果。它说网页不可用。
我知道如何从资产文件夹或网络/互联网加载。但我需要将本地文件加载到 webview 中。是否可以。?
File file = new File("/data/data/packagename/foldername/");
webView.loadUrl("file:///" + file);
我能够通过使用以下路径来解决我的问题:
webview.loadURL("file:///mnt/sdcard/myfolder/subfolder/index.html");
一个应用程序无法访问另一个应用程序存储的内部存储中的数据。权限应用于内部存储,使应用程序写入的数据无法在该应用程序之外访问(您的应用程序无法读取其他应用程序写入的任何内容)。
因此,如果您正在访问不是由您的应用程序 AFAIK 创建的文件,您将无法访问它。
顺便说一句,您可以从内部存储访问该文件,如下所示,
webview.loadURL("file:///data/data/com.yourproject.example/files/index.html");
将您的 html 文件放在资产文件夹中,访问如下所示的页面。
webview.loadURL("file:///"+mContext.getFilesDir()+"/myfolder/subfolder/index.html");
在访问 android 资产中的 html 页面时,您必须提及 android 资产。
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");