首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在webview中获取我的图像的'src‘属性并通过intent传递它?

在webview中获取图像的'src'属性并通过intent传递它,可以通过以下步骤实现:

  1. 获取webview中的图像元素:使用JavaScript代码在webview中执行,通过DOM操作获取图像元素的'src'属性值。可以使用document.getElementsByTagName('img')获取所有图像元素,然后遍历获取每个图像元素的'src'属性值。
  2. 将'src'属性值传递给Android应用:通过与Android应用的交互方式,将获取到的'src'属性值传递给Android应用。可以使用WebView的addJavascriptInterface方法将一个Java对象注入到webview中,然后在JavaScript中调用该对象的方法,将'src'属性值传递给Android应用。
  3. 在Android应用中接收'src'属性值:在Android应用中,通过接收到的'src'属性值进行处理。可以使用Intent将'src'属性值传递给其他组件或进行其他操作。

以下是一个示例代码,演示如何在webview中获取图像的'src'属性并通过intent传递它:

代码语言:txt
复制
// 在Android应用中创建一个Java对象,用于与JavaScript交互
public class ImageHandler {
    private Context context;

    public ImageHandler(Context context) {
        this.context = context;
    }

    // 用于接收'src'属性值并进行处理
    @JavascriptInterface
    public void handleImageSrc(String src) {
        // 在这里进行对'src'属性值的处理,例如传递给其他组件或进行其他操作
        Intent intent = new Intent(context, OtherActivity.class);
        intent.putExtra("imageSrc", src);
        context.startActivity(intent);
    }
}

// 在Android应用中加载webview并注入Java对象
WebView webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new ImageHandler(this), "ImageHandler");

// 在webview中执行JavaScript代码,获取图像的'src'属性值并调用Java对象的方法传递给Android应用
webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        view.loadUrl("javascript:var images = document.getElementsByTagName('img'); " +
                "for (var i = 0; i < images.length; i++) { " +
                "   var src = images[i].getAttribute('src'); " +
                "   window.ImageHandler.handleImageSrc(src); " +
                "}");
    }
});
webView.loadUrl("https://example.com");

在上述示例中,我们创建了一个名为ImageHandler的Java对象,并通过addJavascriptInterface方法将其注入到webview中。在JavaScript中,通过调用window.ImageHandler.handleImageSrc(src)方法,将获取到的'src'属性值传递给Android应用的handleImageSrc方法进行处理。在handleImageSrc方法中,我们可以根据需要进行进一步的操作,例如传递给其他组件或进行其他处理。

请注意,上述示例中的代码仅为演示目的,实际使用时需要根据具体需求进行适当的修改和安全性考虑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

android webview加载html图片自适应手机屏幕大小&点击查看大图

WebSettings webSettings = bindingView.contentWv.getSettings();//获取webview设置属性 webSettings.setLayoutAlgorithm...webview设置属性webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//把html内容放大webview...方法三:使用js脚本,重置img标签图片宽度和高度 此方法需要使用js,固webview设置属性中一定要添加下面这句 webSettings.setJavaScriptEnabled(true);/...img节点,添加onclick函数,函数功能是在图片点击时候调用本地java接口传递url过去 bindingView.contentWv.loadUrl("javascript...,遍历所有的img节点,添加onclick函数,函数功能是在图片点击时候调用本地java接口传递url过去        bindingView.contentWv.loadUrl("javascript

6.2K10

美团App页面视图可测性改造实践

源码中使用大量node.getXXX方法信息,大家是否眼熟呢?这些信息其实就是我们日常自动化测试可以获取UI元素属性。...使用图像识别进行定位 动态卡片中有很多图像包含文字,还有多行文本都会对图像识别的准确性带来很大影响 上面的三种方案,目前看来都无法有效地解决动态卡片元素定位问题。...如何在影响范围较小前提下,达成获取视图信息目标呢?接下来,我们将进一步研究动态布局实现方案。...图11 WebView页面示例 通过运行在App内部SDK,可以获取到对应WebView实例。通过获取到根节点,从根节点开始进行循环遍历,同时把每个节点信息存储下来就可以得到所有的视图信息了。...我们可以通过WebElement["attrName"]方式来进行属性获取

73840

《移动互联网技术》第五章 界面开发: 掌握Activity基本概念,Activity堆栈管理和生命周期

事件、事件触发以及事件处理,构成了界面交互事件模型。 通常将事件源和事件监听器分离开。事件源上发生特定事件具体信息,存放在Event对象通过传递给事件监听器。...通过设置Intentflag和AndroidMainifest.xmlActivity元素属性,可以控制TaskActivity关联关系和行为。...传递给要启动活动,收到Intent活动通过getIntent()函数获取传递过来Intent。...在活动onCreate函数,首先,创建DisplayMetrics对象,通过获取与屏幕相关信息。在创建双缓冲视图是,需要获取屏幕像素宽度和高度,它们单位是px(像素)。...从Intent获取图片uri,通过输入流读取图片数据,然后解码。

9510

笔记 | Xamarin

但是,可以使用 FlyoutItemIsVisible 属性将项隐藏在浮出控件使用 IsVisible 属性将其从浮出控件删除: 类型为 bool FlyoutItemIsVisible 指示项是否已隐藏在浮出控件但仍可以通过...此属性默认值为 true。 类型为 bool IsVisible 指示是否应从可视化树移除项,从而不在浮出控件显示。 默认值为 true。...: WebViewClient 拦截 url 缺点: 协议约束需要记录一个规范文档,并且 js 无法立即获取 C# 返回值,需要 C# 再次主动调用 js 来传递返回值 public class...arg1=111&arg2=222"; } 缺点: 不能拿到 C# 返回值, 若 js 想拿到方法返回值,只能通过 WebView loadUrl 方法去执行 js 方法把返回值传递回去,相关代码如下...,放在 result (JsPromptResult) ,所以选择拦截 5.WebView -> js: webView.LoadUrl 缺点: C# 调用 js ,无法立即获取 js返回值,只能通过

23.9K20

【Android】WebView 应用模版 ( WebView 设置 | 设置 WebSettings | 启用调试模式 | 设置 WebChromeClient )

获取设置 Web 设置 val settings = webview.settings 启用 JavaScript 设置 WebView 是否 启用 JavaScript 代码执行 ; 该选项必须启用...// 设置是否启用 DOM 存储 // DOM 存储是一种在 Web 应用程序存储数据机制,使用 JavaScript 对象和属性来存储和检索数据 settings.domStorageEnabled...混合内容是指 HTTPS 网页包含 HTTP 资源(例如图像、音频、视频等)情况 ; 在 5.0 以上设备 , 默认情况下 不允许 http 和 https 混合加载 , 需要设置允许 http...当 useWideViewPort 属性设置为 true 时,WebView 将支持 Viewport 元标记宽度,自动调整网页缩放比例以适应设备屏幕宽度。...// 设置是否启用 DOM 存储 // DOM 存储是一种在 Web 应用程序存储数据机制,使用 JavaScript 对象和属性来存储和检索数据 settings.domStorageEnabled

2.9K20

安卓第九夜 狂风

在这个新条目页面,点击某个联系人后,能显示该联系人URL指向页面。相关安卓知识点为: Intent和Bundle。传递数据。 WebView。用于显示一个网页。...然而,可以把类别信息传递给同一个下游页面,让该下游页面根据类别,进行不同处理。这个数据传递任务,将由Intent完成。从概念漫游(上),我们已经知道,Intent就像传令兵。...提取Intent附加数据 在下游Activity可以通过ContextgetIntent()方法来获取Intent对象。...提取出Contact表,通过ListView和ContactAdapter,显示为联系人条目页面。在点击条目后,URL信息放入Intent启动下游BlogActivity。...使用了WebView视图元素来显示Web页面。

86670

Android用webView包装WebAPP方法

博客,不过在此之前,先记录下所经历一些坑,工具使用是 Android studio; 创建一个项目,这个就不说了,网上很多教程; 首先在 app/src/main/AndroidManifest.xml...里添加权限: 注意本文代码”…”都代表省略代码 <manifest ......</application </manifest 第一个是允许访问网络连接; 第二个是允许程序写入外部存储,SD卡上写文件; 第三个是允许应用程序从外部存储读取; 再是 app/src/main/...这2个都是 webView 配置属性,不过在功能上有所区分: WebViewClient帮助WebView处理各种通知、请求事件 WebChromeClient是辅助WebView处理Javascript...: 如果你路由里面是异步加载,resolve = require([‘.

1.4K20

在开发实现点击 WebView 图片,调用原生控件放大展示

今天我们就来学习一下,如何点击 WebView 网页图片,调用原生控件进行放大展示。 其实实现这种交互非常简单,就是通过 JS 调用原生控件。...通过点击加上 onClick 事件,通过 JS 调用原生控件,展示放大即可。 效果图 这是在线网址展示效果图 ? 这是本地 html 文件展示出效果图 ?...设置 WebView 这一步就是将我们写 html 本地文件放入到 WebView 。...,遍历所有的img标签,添加onClick函数,函数功能是在图片点击时候调用本地java接口传递url过去 mWebView.loadUrl("javascript...这样我们就通过 JavascriptInterface 就把 JS 和 WebView 之间实现通信了。

2.3K50

『uni-app』web-view 大量数据通信

而且该组件是全屏,会覆盖该组件之外其他内容。 本文要讲解在 uni-app 中使用 web-view 怎么实现大量数据通信。 所使用是 Vue 3 语法。...基础用法可以看文档,本文主要讲解如何在 主应用 向 web-view 传输数据。...“父传子” 方式有2种: 通过 url 传值 使用 uni.webview.js 1、通过 url 传值 数据量少的话,可以通过 url 方式传给子应用。...字节跳动小程序与飞书小程序不支持 属性 属性名 类型 说明 平台差异说明 src String webview 指向网页链接 allow String 用于为 iframe (opens new...window)指定其特征策略(opens new window) H5 sandbox String 该属性对呈现在 iframe (opens new window)框架内容启用一些额外限制条件

1K21

WebView深度学习(二)之全面总结WebView遇到坑及优化

上篇文章讲到了WebView基本使用以及Android和js交互. 这篇文章讲一下WebView遇到那些坑,带领各位爬坑。这里如果有你没遇到问题,欢迎留言告诉尽我所能帮你解决。...获取点击图片地址 先获取类型,根据相应类型来处理对应数据。...地图类型 WebView.HitTestResult.SRC_ANCHOR_TYPE 超链接类型 WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE 带有链接图片类型...,主流APP也都有进度条效果,大概思路来说一下:   首先自定义一个HorizontalProgressView继承View,然后自定义一个MyWebView继承WebView,然后初始化时候通过...但我们怎么能让用户发现原来使用是网页应用呢,我们期望是用户在网页上得到是原生般应用体验,那就先要从干掉这个默认出错页面开始。

5.7K30

Activity跳转之scheme跳转法

> 如上代码我们只是简单配置了一个android:scheme属性,那要打开这个Activity也是so easy startActivity(new Intent(Intent.ACTION_VIEW..., Uri.parse("azhon.scheme://"))); 当然还可以配置更多属性(截取自官方中文文档,可以点击上面的manifest...> 在主页面布局添加一个WebView控件,加载assets文件夹html文件 布局文件代码: <WebView android:id="@+id/web"...在网页只需要使用一个超链接便可以轻松跳转至我们app,是不是很开心。当你将这个html文件使用手机浏览器查看时,点击也是一样可以跳转进app 跳转页面的时候还可以通过 ?...key=value&key1=value2 键值对方式往地址后面拼接参数 在跳转过去页面接收传递过来参数 Intent intent = getIntent(); Uri uri = intent.getData

1.8K20

Android Intent漏洞

例如,如果你在应用构建一个名为DownloadService服务,用于从Web下载文件,可以使用以下代码启动: // Executed in an Activity, so 'this' is...用于获取用户选择文件(文档、图象、视频)URI,并在应用中进行处理(例如,将文件发送到服务器),大多Android/Java无法将Android ContentResolver返回InputSteam...ps:上面是理解,不知道对不对 访问任意组件 由于 Intent 是 Parcelable,因此属于此类对象可以作为额外数据传递给另一个 Intent。...().getStringExtra("url"), getAuthHeaders()); 在此示例,AuthWebViewActivity 将用户身份验证会话传递到从 url 参数获取 URL。...因此,允许您绕过Android内置限制。

49130

Android scheme呼起App

一.自定义Scheme Android应用/组件间通信有一种方式是intent,应用可以注册intent filter声明自己对什么样intent感兴趣,其它应用发送intent通过系统级广播传递过来...iframe.src a.href img.src ...其它能发出请求方式 这些方式在强弱上有区别,比如location.href是强,而img.src很弱,至少要强到浏览器决定把这个请求交给系统广播才行...所以一般呼起App页面都会延迟自动跳转下载页,无论有没有成功呼起App,这也是迫不得已 除了页面发出请求,还有一种更强方式:通过应用发出请求,例如: // 通过webview发出请求 webview.loadUrl...(mySchemeUri); 这个起点就是应用级,比WebView页面请求要强一些。...所以一般Hybrid App,客户端会提供这样接口,用来跳转第三方,比页面请求更强 四.Intent Scheme URL攻击 自定义Scheme存在安全风险,比如: 注册优先级更高相同intent

1.6K20

Android点击WebView实现图片缩放及滑动浏览效果

最近做项目有一个要求,就是在WebView显示html,需要在点击其中图片时进行放大,并进行缩放和滑动 浏览,第一想到是这是和js进行交互事情,但是怎么获取html图片url,保存起来进行显示...,就不知道 了,所以去查了下资料,最后找到了解决办法: 博客地址:Android WebView图片浏览及缩放效果 首先说一下处理这个要求思路,首先我们要获取到html所有图片url...,保存到集合,当点击图片时,跳转 一个Activity用ViewPager进行显示,这样就实现了滑动浏览效果,至于图片缩放我们则需要用到第三开源 库PhotoView....(); } }); 然后是获取html图片url,保存打开(最主要就是注入js函数监听,拿到所有图片url),这里在添加图片时发现图片添加了两次,所以我就把list集合元素进行去重了...src.

1.9K10

JS Bridge 通信原理

不管对方是 Java 还是 Python,我们都可以通过 http/https 接口来获取数据。实际上这个流程和 JSONP 更加类似。 已知客户端是可以拦截请求,那么可不可以在这个上面做文章呢?...客户端调起扫码功能之后,会获取 WebView 上面的 callbacks 对象,根据 callback_id 回调。...这种方式不依赖拦截,主要是通过 WebView 向 JS 上下文注入对象和方法,可以让 JS 直接调用原生。...PS:iOS Block 是 OC 对于闭包实现,本质上是个对象,定义 JS 里面的函数。...iOS 和 Android 中最显著差异就在于这个 window.bridge.send 方法实现,Android 里面是直接调用 Native 方法,iOS 通过 URL Scheme 形式调用

4.7K50

App安全测试—Android安全测试规范

,存在被恶意攻击者通过网络窃听等手段获取网络数据包敏感数据威胁。...本地数据库注入/文件遍历检测 安全风险:获取或者篡改app存储敏感信息,手机号、账号、密码等,在业务运行操作时无法保证数据安全。...WebView远程代码执行漏洞 安全风险:Webview接口addJavascriptInterface可通过webview对象向页面javascript导出java本地接口,可能导致任意命令执行。...用户数据保存到目录databases/webview.db。 如果手机被root就可以获取明文保存密码,造成用户个人敏感数据泄露。 执行步骤 使用反编译工具打开应用,反编译出应用源码。...通过Intent传递敏感信息是不安全,会导致intent敏感数据泄露。

4.1K42
领券