如何在 Android WebView 中从远程 URL 访问本地资源?

2024-04-29

要加载 HTML 中的资源,我使用 URLfile:///android_asset/my_image.png。 当我在本地加载 HTML 时,它可以工作,例如,使用WebView.loadData() method.

但是,我无法从远程网站加载本地资源,例如,当我使用WebView.loadUrl("http://example.com/my_page.html")。它显示了页面,但图像未加载。

我该如何解决这个问题?

UPDATE:

塔克什瓦尔提到,由于安全原因,这是不可能的。据我了解,当您在浏览器中打开网页时,您作为用户无法控制该网页正在访问的内容。当您可能读取用户的敏感数据时,访问本地文件系统也有点不同。在这里我只想访问应用程序资产。

解决方法可能是下载页面并将其加载到WebView using loadData()方法。但可能有一些安全开关允许WebView访问本地资产。

UPDATE2:我需要支持 Android 2.3+。


您无法从外部页面链接到本地​​资源。这是出于安全原因。

请参阅佩卡对类似问题的回答:如何在网页中显示本地图片? https://stackoverflow.com/questions/4908171/how-to-show-local-picture-in-web-page

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

如何在 Android WebView 中从远程 URL 访问本地资源? 的相关文章

随机推荐

  • 通过 StackExchange.Redis 连接到 Redis Servier

    我尝试使用以下方法制作一个测试项目Redis https redis io服务器 通过 Virtual Box 安装在 Linux Ubuntu 虚拟机上 Linux 机器通过 Virtual Box 的桥接适配器与本地网络连接 Virtu
  • Mac OS Snow Leopard 上的两个版本的 PHP 以及使用 PECL 安装 xdebug

    我正在使用MAMP在我阅读一些有关内置 Apache PHP 的文章之前 我已经在 PHP 开发 标准 中使用过一段时间了雪豹 我决定转向那些我提供的但似乎有很多问题的人 第一件事是当我使用MAMP时 我将PEAR从1 9 0升级到1 9
  • 使用 gradle kotlin dsl 执行 JavaExec 任务

    我创建了简单的build gradle kts file group com lapots breed version 1 0 SNAPSHOT plugins java java sourceCompatibility JavaVersi
  • 跨页面加载跟踪子窗口

    如果重新加载父页面 是否可以跟踪子窗口 我目前打开窗口如下 var childWindow childWindow window open url 当我想重新打开同一个子窗口时 childWindow focus 明显的问题是 如果刷新父窗
  • Discord JS - DiscordAPIError:缺少访问权限

    所以我按照磨损钥匙教程来不和谐机器人 我不知道问题是什么 这是错误 home container node modules discord js src rest RequestHandler js 349 throw new Discor
  • cron 作业或 PHP 调度程序

    我使用 MYSQL 作为我的数据库 PHP 作为我的编程语言 我想运行一个 cron 作业 该作业将运行直到当前系统日期与我的数据库表中名为 PROJECT 的 截止日期 日期 列匹配 一旦日期相同的是 必须运行更新查询 这会将状态 项目表
  • Linux 中如何确定哪个进程正在使用某个端口

    我目前正在其默认端口上运行 RethinkDB 因为如果我将浏览器指向localhost 8080我看到 RethinkDB Web 界面 我想关闭 RethinkDB 并使用以下命令在另一个端口上重新打开它 port offset争论 然
  • 特定模型的自定义 REST url

    Ember 有没有办法为特定模型配置自定义 REST url 就像这个模型一样 App Post DS Model extend title DS attr string comments DS hasMany App Comment Ap
  • SQL原型设计:面对使用varchar(N)静默截断数据——有更好的选择吗? (天数据)

    情况 varchar 20 好像默默地截断在 Teradata 和not当遇到长度超过 20 个字符的字符串时扩展或抱怨 这有点令人惊讶 因为我预计列会自动扩展以适应更大的字符串 例如 30 个字符 或者如果更大的字符串会抛出错误遇到字符串
  • 在 Angular 中强制进行摘要

    在用户操作后的某个时刻 我希望发生摘要 因此 UI 反映了支持它的数据模型的更改 我有一个服务在回调中执行一些更改 异步 我明白那个 scope仅在控制器的上下文中才有意义 我可以通过执行来达到相同的效果吗 apply on the roo
  • 如何在 Cypress 的 E2E 测试中登录 Auth0?

    我已经开始测试 React Web 应用程序 但我没有走得太远 因为我遇到了登录问题 我在用cypress https www cypress io e2e测试工具 将显示一个带有登录按钮的欢迎页面 该页面会将您重定向到auth0 http
  • Traefikv2.3 出现 `Failed to list *v1beta1.IngressClass: ingressclasses.networking.k8s.io` 错误

    我正在尝试使用Traefik Kubernetes Ingress 我在用着traefik v2 3 K8的cli版本是v1 18 3服务器版本是v1 18 6IKS 我正在使用 IBM Kubernetes 服务来部署它 但我在 pod
  • 将 SSL 与 MAMP PRO 4 结合使用

    由于我已更新到 chrome 63 我在 localhost 中的网站被重定向到 https 因此我决定将 SSL 与 MAMP PRO 一起使用 但我无法使其工作 chrome 说您的连接不是私有的 在 MAMP 的 SSL 面板中 我生
  • 在 Three.js 中获取 Object3D 的大小

    我的场景中有这个 3D 对象 var icon new THREE Object3D var iconTexture THREE ImageUtils loadTexture images icon png iconMaterial new
  • Next.js API 路由神秘地修改 JSON 负载

    由于某种原因 当我通过 Postman 作为原始文本发送 JSON 格式的数据时 没有任何问题 当我通过 Postman 发送与原始 JSON 完全相同的数据时 区别应该只是content type标头是application json代替
  • 抑制 retina.js 库中的 404 错误

    我们使用js库视网膜 js https github com imulus retinajs 它将低质量图像替换为 视网膜 图像 大小乘以 2 问题是 retina js 会为每个无法找到的 视网膜 图像抛出 404 错误 我们拥有一个网站
  • Github 下载文件夹为 zip

    如何为我的 Github 存储库的访问者提供一个链接 以将我的存储库的 builds 文件夹下载为 zip 文件 该文件夹包含应用程序所需的可执行文件 着色器和纹理 当然 我可以手动构建该目录的 zip 文件并将其添加到存储库中 但这会导致
  • Devise 和 Ruby on Rails:尝试登录时如何解决“Completed 401 Unauthorized”问题

    我正在尝试将 Devise gem v4 7 2 与 Ruby on Rails v6 0 3 2 一起使用 单击 登录 按钮时 我收到以下输出 Started POST users sign in for 1 at 2020 11 21
  • 如何从 CMake 运行 .bat 文件?

    如何在预链接或构建后事件中从 CMake 运行 bat 文件 你可以使用add custom command e g if WIN32 add custom command TARGET
  • 如何在 Android WebView 中从远程 URL 访问本地资源?

    要加载 HTML 中的资源 我使用 URLfile android asset my image png 当我在本地加载 HTML 时 它可以工作 例如 使用WebView loadData method 但是 我无法从远程网站加载本地资源