Android-WebView中加载本地html的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android-WebView中加载本地html的方法相关的知识,希望对你有一定的参考价值。
参考技术A android在webview下加载本地网页的方式首先,在src目录下面新建一个assets目录,之后新建一个web资源的根目录,如下图所示:
这里的Web目 录名可以任意起,但是必须有这一层,否则可能拿不到资源
之后再webview中加载资源:
webView.loadUrl("file:///android_asset/web/index.html");
//注意一点,目录名是assets,资源路径中是asset
在 WebView 中加载页面之前,用本地 Android 资源替换 HTML 文档的图像
【中文标题】在 WebView 中加载页面之前,用本地 Android 资源替换 HTML 文档的图像【英文标题】:Replace images of a HTML document with local Android resources, before loading the page in a WebView 【发布时间】:2014-12-10 16:42:28 【问题描述】:我知道出于安全原因,HTML 标准不再允许将本地资源作为图像加载到文档中。
无论如何,我发现如果我想在 WebView 中加载本地页面,我必须复制 android-asset
项目文件夹中的 html 文件。
如果我想使用混合方法怎么办?
我想从 uri 中获取 HTML 文档,用本地路径替换 img
HTML 标记的 src
属性的值,然后在 WebView 中加载代码。
有一个像这样的 html 文档:
<hmtl>
<head>
</head>
<body>
<img src="http://URL-SITE/img/x.jpg">
</body>
</hmtl>
如何将http://URL-SITE/img
替换为本地图片资源的路径
在页面由 WebView 加载之前?
我已经尝试将本地图像放入文件夹android-asset
并更改file:///android_asset/img/x.jpg
中的src 值,但没有成功。
【问题讨论】:
您始终可以使用<img src="data:image/png;base64,..." />
语法将图像数据嵌入到 HTML 本身中
您必须先使用http客户端获取页面的来源。然后解析 src 属性 urls 并用文本替换资产中文件的 urls。您的资产网址没问题。但是您必须将图片放在资产目录中。不在你命名的那个。最后将适配后的html源码交给webview。
问题是我不想下载图片,因为我已经有了它们,我不希望用户使用他的移动数据。
【参考方案1】:
好的,谢谢 cmets。 问题是我使用了命令 loadData
String html ="<html> <head></head> "
+" <body> <img src=\"file:///android_asset/img/x.jpg\"> "
+"</body> </html>";
myWebView.loadData(html, "text/html; charset=UTF-8", null);
而不是
myWebView.loadDataWithBaseURL(null, html, "text/html", "UTF-8", null);
【讨论】:
以上是关于Android-WebView中加载本地html的方法的主要内容,如果未能解决你的问题,请参考以下文章
在 NativeScript 应用程序中加载本地 HTML/JavaScript/CSS