将html文件从本地文件夹加载到webview中

GAM*_*AMA 24 html android android-webview

我是Android开发的新手.

我想将一个html文件加载到webview中.

请注意,有对SO像许多相关的问题这个,但他们都处理获得**.*HTML从资产的文件夹.

但我想从本地文件夹加载html文件,说"D://abc.html",因为如果我的html大约是10Mb,那么相应的apk大小也会达到10mb.

任何帮助赞赏.

编辑

我试过了 webView.loadUrl("file:///D:/Projects/myWebsite/index.html");

但它给了Web page not availableFile not found error.

Ton*_*ony 43

您可以使用:


   WebView webView = // ...

   webView.loadUrl("file:///myPath/myFile.html");
Run Code Online (Sandbox Code Playgroud)

在Android应用程序中,可以从3种类型的位置读取文件:

  • 内部存储:每个应用程序都有自己的文件名,相对于此位置.URL采取形式file:///myFolder/myFile.html

  • 外部存储:需要许可,可能并不总是可用.通过调用Environment.getExternalStorageDirectory()获取根文件夹.因此,使用以下方法构造URL:String url = "file:///" + Environment.getExternalStorageDirectory().toString() + File.separator + "myFolder/myFile.html"

  • 资产:存储在apk中.只读访问权限.URL采用形式file:///android_asset/myFolder/myFile.html(另请参阅将Android资源加载到WebView中)

  • Android是Linux实现,因此Windows风格的路径不起作用.您的路径是相对于您应用的主文件夹的,但我会寻找一个可以进一步讨论此内容的参考 (3认同)

Ton*_*mez 5

在 Android 4.4 KitKat 中,会抛出“不允许加载本地资源:file:///..”。当 loadURL 时出现,我发现的唯一替代方案是“loadDataWithBaseURL”。

webView.loadDataWithBaseURL("file:///android_asset/demo/",
                             tmpDocumentText,"text/html", "UTF-8", null);
Run Code Online (Sandbox Code Playgroud)