我是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 available
和File not found error
。
答案 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。