gpt4 book ai didi

android - 使用存储在应用程序中的图像的本地路径将 Web 应用程序加载到 Web View 中

转载 作者:行者123 更新时间:2023-11-29 02:14:14 29 4
gpt4 key购买 nike

我希望能够创建一个使用 WebView 请求 url 的应用程序来自返回 html 和 css 的外部 Web 应用程序引用图像是实际应用程序中的 Assets 。这想法基本上是加快一切,这样图像就不必被下载。

这是一个简单的例子:

服务器 HTML:

<html> 
<head>
<style>
#myImage { background-image: url("file:///android_asset/myImage.jpg"; width: 50px; height: 50px;}
</style>
</head>
<body>
<div id="myImage"></div>
</body>
</html>

那么,有什么办法可以做到这一点吗?我的主要目标是让应用程序从服务器请求所有 HTML,但能够将图像 URL 映射到应用程序内的本地资源。

提前致谢,里昂

最佳答案

为什么不从应用程序端加载所有 HTML?如果您担心此网页无法访问网络 - 请使用 WebView.loadDataWithBaseUrl 方法。

要将图像嵌入到网页中,您可以使用数据:URI 方案:http://en.wikipedia.org/wiki/Data_URI_scheme

即使您的页面是远程加载的,您也可以映射您的应用程序图像。您可以使用 WebView.loadUrl("javascript:....") 通过 JavaScript 代码(也使用 data:URI 方案)“发送”图像数据。

编辑。

首先,在 HTML 端,带有嵌入图像的示例将如下所示:

<html> 
<head>
<style>
#myImage { background-image: url('data:image/png;base64,iVBORw0KG.....'); width: 50px; height: 50px;}
</style>
</head>
<body>
<div id="myImage"></div>
</body>
</html>

什么时候,如果你想在应用端存储这个页面,你可以把它存储在某个地方(字符串资源, Assets 文件夹)和什么时候获取它。

String pageResource = // get it somehow
WebView myWebView;

myWebView.loadDataWithBaseUrl(
"http://my.site.com", // The base url
pageResource, // page content to load...
"text/html", // it's MIME type...
"UTF-8", // and encoding
"http://my.site.com/page.html");

现在 WebView 已加载您的页面。它是从本地资源加载的,但从 WebView 的角度来看,它就像是从网络加载的。它也可以访问网络资源和在这里工作的 JavaScript 代码(这是 loadDataloadDataWithBaseUrl 之间的主要区别)。

关于android - 使用存储在应用程序中的图像的本地路径将 Web 应用程序加载到 Web View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5350987/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com