我的平板电脑的内部存储空间中有一个文件。 /myfolder/subfolder/index.html。如何将其加载到应用程序的webview中。
我试过了
webview.loadURL("file:///myfolder/subfolder/index.html");
但它没有给出预期的结果。它说网页不可用。
我知道如何从资产文件夹或从网络/互联网加载。但我需要将本地文件加载到webview中。是否可能。?
答案 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");