首页
学习
活动
专区
工具
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.4K10
  • 美团App页面视图可测性改造实践

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

    78240

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

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

    22610

    笔记 | 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的返回值,只能通过

    24K20

    【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

    3.2K20

    安卓第九夜 狂风

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

    90370

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

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

    2.4K50

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

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

    5.9K30

    『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)框架中的内容启用一些额外的限制条件

    1.2K21

    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.9K20

    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的内置限制。

    63330

    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.9K20

    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.9K50

    webview与js的相互交互

    方案思路, 1.在点击图片的时候调用本地的java方法并给出响应的图片地址 2.本地获得图片地址后,开启一个遮罩activity进行显示和处理 第二步的实现很容易实现,关键是第一步的实现,在网页中点击图片不会调用本地的...关键点就是给普通的html注入我们的js函数,让图片能够响应点击并调用js函数,在通过js函数来调用我们的java函数。.../8631835 这次实例的主要功能:点击图片在新的activity中展示,对图片能够进行手势操作,包括双指缩放等 效果图 ?...,遍历所有的img几点,并添加onclick函数,函数的功能是在图片点击的时候调用本地java接口并传递url过去         contentWebView.loadUrl("javascript... intent = new Intent();               intent.putExtra("image", img);               intent.setClass(context

    2.7K90

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

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

    4.4K42
    领券