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

时间:2012-04-19 07:43:51

标签: android html android-webview

我是Android开发的新手。

我想将 html文件加载到 webview

请注意,关于SO的问题很多,例如this,但它们都涉及从 assets 文件夹中获取**。html *。

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

任何帮助表示感谢。

修改

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

但它提供了Web page not availableFile not found error

3 个答案:

答案 0 :(得分:43)

您可以使用:


   WebView webView = // ...

   webView.loadUrl("file:///myPath/myFile.html");

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

  • 内部存储:每个应用都有自己的文件名相对于此位置。网址采用file:///myFolder/myFile.html

  • 格式
  • 外部存储:需要许可,可能无法始终可用。通过调用Environment.getExternalStorageDirectory()获取根文件夹。因此,使用以下内容构建网址:String url = "file:///" + Environment.getExternalStorageDirectory().toString() + File.separator + "myFolder/myFile.html"

  • 资产:存储在apk中。只读访问权限。网址采用file:///android_asset/myFolder/myFile.html格式(另请参阅Loading an Android Resource into a WebView

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

WebView具有loadData方法http://developer.android.com/reference/android/webkit/WebView.html

您需要做的就是将文件读入String,然后使用loadData将其提供给WebView。