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

2024-03-23

我希望能够创建一个使用 WebView 请求 url 的应用程序 从外部 Web 应用程序返回 html 和 css 引用作为实际应用程序中的资产的图像。这 想法基本上是加速一切,以便图像永远不必 被下载。

这是一个简化的示例:

服务器 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 方法。

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

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

EDIT.

首先,在 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>

当,如果你想将这个页面存储在应用程序端,你可以将它存储在某个地方(字符串资源、资产文件夹)并在获取它时。

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 代码(这是两者之间的主要区别loadData and loadDataWithBaseUrl).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用应用程序中存储的图像的本地路径将 Web 应用程序加载到 Web 视图中 的相关文章

随机推荐

  • 使用 Chrome 开发者工具调试 onFocus 事件?断点后无法返回焦点

    我正在尝试调试 JavaScriptonFocus附加到页面上一堆文本框的事件 选择一个文本框然后按 Tab 键切换到下一个文本框时会出现此错误 我试图通过在其中放置一个断点来调试它onFocus使用 Chrome 开发者工具的事件 我面临
  • Prolog 时间重叠问题

    假设我有这个知识库 free ann slot time 8 0 time 9 0 free ann slot time 10 0 time 11 0 free bob slot time 7 0 time 8 30 free bob sl
  • Jenkins Copy Artifact 解析复制的构建 ID

    我在 Jenkins 2 73 1 中使用 在多分支管道中复制神器插件 https wiki jenkins io display JENKINS Copy Artifact Plugin要从其他两个管道获取最后成功的工件 请参阅我的 Je
  • 范围类型如何影响 EntityQuery 对象的重用方式

    for UserList userList UserList Component getInstance UserList class ScopeType METHOD userList getUserByEmailAddress emai
  • iPhone 旋转和全屏视频

    我遇到了一个奇怪的问题 需要帮助解决 我的应用程序始终以纵向模式运行 我明确希望它是这样的 在应用程序的一处 我有一个 UIWebView 它工作得很好 正如预期的那样 此 Web 视图并非始终显示 而是动态添加到主视图并根据用户操作删除
  • 如何加载本地JSON文件?

    我正在尝试通过 jquery 加载本地 JSON 文件 代码工作正常 但数据在数组中不可用 getJSON ajax data myjasonfile json function json console log json 我的控制台仅显示
  • 函数指针和返回类型转换

    假设我有一个执行一些副作用然后返回答案的函数 int foo perform some side effect return 42 我要绑定foo到函数指针 但我对答案不感兴趣 只是副作用 void bar foo 然而 这似乎是一个类型错
  • 正则表达式提取“--!!”之后的所有文本在 R dplyr 中

    我试图在 R 中使用 dplyr 来提取由变量的某些实例过滤的数据框中变量字符串后面的子字符串name在下面的例子中 我正在尝试将所需的结果传递到一个名为的新变量中income rent 我是正则表达式的新手 我的尝试是 income ca
  • 如何在 Perl 中进行字母数字排序?

    我有一个如下所示的文件 80 1p21 81 19q13 82 6p12 3 83 Xp11 22 84 3pter q21 86 3q26 33 87 14q24 1 q24 2 14q24 14q22 q24 88 1q42 q43 8
  • 在 GCP App Engine 标准环境上安装 cmake 的解决方法

    我需要安装dlib封装在应用程序引擎标准对于需要的应用程序cmake 以下是我在安装时遇到的错误 我尝试添加cmake and cmake setup在requirements txt中但没有用 ERROR Failed to build
  • 在 c# 2008 中使用正则表达式验证的电话号码验证?

    我想验证这种格式的电话号码 即 919981424199 91231456789 我正在使用 Asp net c 2008 来开发网站 为此 我使用了正则表达式验证控件 gt 属性 gt 验证表达式 0 9 0 9 但这接受号码为91998
  • Emacs 确定键盘布局

    Emacs 有没有办法检测当前的键盘布局 我经常用英语和德语写文本 切换 Win 操作系统 键盘布局 但是 某些功能 例如 C Y 应始终位于相同的物理键上 无论我当前使用哪种语言进行输入 Thanks 考虑使用M x set input
  • 使用 Firebase 和 APNs 身份验证密钥进行生产推送通知

    在 TestFlight 上测试我的应用程序时 我注意到我没有收到推送通知 我已确认 当从 Xcode 加载构建时 我可以收到从云函数和 firebase 控制台发起的通知 我引用了其他类似的问题 但没有一个反映我正在处理的确切问题 在 F
  • 如何将文件保存到 MongoDB?

    我想将用户选择的文件保存到 MongoDB 如何正确地将文件添加到 BSON 对象以便将其添加到 MongoDB 如果我的方法不正确 请指出正确的方向 下面是客户端代码 此 jQuery 函数收集每个输入字段上的文本 需要文件部分的帮助 并
  • Spring Boot 几分钟后停止解析视图

    我有一个 Spring Boot 应用程序 它突然停止解析视图 而是向我抛出 404 错误 这些是我的依赖项
  • 如何从代码隐藏中确定 ASP.NET 生成的 ID?

    在 ASP NET 中 当您为标签提供 ID 时 它会根据控件层次结构为该元素生成唯一的 HTML id 即
  • 如何在未聚焦时保持 WPF 文本框选择?

    我想在 WPF TextBox 中显示一个选择 即使它没有焦点 我怎样才能做到这一点 我已将此解决方案用于 RichTextBox 但我认为它也适用于标准文本框 基本上 您需要处理 LostFocus 事件并将其标记为已处理 protect
  • d3 强制定向图删除文本光标

    当我向 d3 力定向图形布局中的节点添加文本时 当我将鼠标悬停在该节点上时 鼠标指针会更改为文本光标 有没有办法避免这种情况并始终让它保持常规指针 普通指针 文本光标 这是一个fiddle http jsfiddle net pkerped
  • 在哪里可以找到 Java API 代码[重复]

    这个问题在这里已经有答案了 我听说Java是开源代码 那么 我可以获得 Java API 编码方法吗 如果是这样 请告诉我在哪里可以获取 Java API 的源代码 您可以在src zip在JDK安装目录下 From Java docs h
  • 使用应用程序中存储的图像的本地路径将 Web 应用程序加载到 Web 视图中

    我希望能够创建一个使用 WebView 请求 url 的应用程序 从外部 Web 应用程序返回 html 和 css 引用作为实际应用程序中的资产的图像 这 想法基本上是加速一切 以便图像永远不必 被下载 这是一个简化的示例 服务器 HTM