如何将字符串保存为html文件,并在webview中检索和加载它?
我遇到的情况是,在点击API时,我得到的响应为Html格式的字符串,如下所示为字符串
<html>
<head>
<title> <!-- title bar --> </title>
<!-- header for the website -->
</head>
<body>
<!-- body section of the website -->
</body>
</html>
我将这个字符串保存为该高速缓存目录中的html文件,如下所示
val htmlFile = File(
mContext.cacheDir,
System.currentTimeMillis().toString() + ".html"
)
val out = FileOutputStream(htmlFile)
val data: ByteArray = htmlString.toByteArray()
out.write(data)
out.close()
并从htmlFile.absolutePath
中检索该文件路径,然后在web视图中加载该路径。
这显示网页不可用的错误。
如何获取html文件的路径并加载到webview中?
**注:**当我将html文本保存为assets文件夹中的html文件并将该文件加载为字符串时,"file:///android_asset/test.html"
在webview中工作。
完整代码添加如下:
/*htmlString is the string obtain from api response is in html format like
* <!DOCTYPE html>
<html>
<head>
<title> <!-- title bar --> </title>
<!-- header for the website -->
</head>
<body>
<!-- body section of the website -->
</body>
</html>
*/
val htmlFile = File(
mContext.cacheDir,
System.currentTimeMillis().toString() + ".html"
)
val out = FileOutputStream(htmlFile)
val data: ByteArray = htmlString.toByteArray()
out.write(data)
out.close()
val htmlFilePath = htmlFile.absolutePath // Loading this in WebView Shows Error Webpage is not available
requireActivity().apply {
val intent= Intent(this, WebviewActivity::class.java)
intent.putExtra("title", "Dummy Title")
intent.putExtra("url", htmlFilePath)
startActivity(intent)
}
请为我的问题提供解决方案,谢谢
1条答案
按热度按时间pcww981p1#
最后得到了该问题的解决方案
在webview中添加此行后,从缓存目录加载html文件成功。
问题不在将文件保存到缓存目录或检索它。它是关于在webview中缺少这两行