首页
学习
活动
专区
圈层
工具
发布

安卓webview注入js修改网页文本或添加其他元素

webview的骚操作 webview不止可以加载网页,加载的同时,网页的任何元素我们都是可以修改的,隐藏、替换、插入新的html元素balabala,总之,webview的神奇给了我们很多发挥创意的可能...: 而且操作起来也是异常简单,几乎是模板代码,不管你是否精通js,你都可以有模有样的轻而易举的实现你想要的效果。...2018120200582056.png /** * 注入js隐藏部分div元素,多个操作用多个js去做才能生效 */ private void hideHtmlContent() { /.../修改文本,可以注入任意的html代码,我是直接注入一段带样式的文本节点,表现良好 String javascriptq = "javascript:function modifyText()...(); } }); 看很多文章是在onPageFinish()调,其实是有问题的,因为这个方法是页面load完才会执行我们自己的方法,那些不想看到的元素一开始还是显示的

5.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    webview和js交互

    今天主要总结两点:一是使用Js去调用客户端公有方法,二是从客户端调用Js中的方法 一、JS调用客户端公有方法 上例子:(PS:不会写JS,就网上找了一段js代码) 新建项目,在项目的assets...:alert(injectedObject.toString())"); 这段是说,注入提供的java对象到WebView中。...该对象以接口名的方式被注入到Javascript的上下文环境中。这样就可以在JavaScript中去访问该对象的方法。...(系统版本在4.2以下要考虑的安全问题先mark下这个blog: Android WebView的Js对象注入漏洞解决方案http://blog.csdn.net/leehong2005/article...(new JsObject(), "injectedObject"); 定义一个JsObject类,该类里定义了提供给Js调用的方法,将该对象命名为injectedOnject,即接口名注入到js中

    5.7K50

    WebView与js交互

    PS:大家都知道现在一个安卓项目里面有一些比较悬的画面,比如说一个炫酷的导航页,或者抽奖大转盘等,这些可以用安卓自身的知识来实现,也可以用JS来实现这些动画,然后安卓直接拿来用,这期间也是免不了有一些交互...而且webview还可以实现网页回退,但是问题来了,在引进来的网页我们怎么控制呢,你点击百度是百度页面所发生的变化,都是百度页面本身的功能,接下里,咱们就看看怎么在安卓Activity中写控制html变化的方法...(this,"android");//添加js监听 这样html就能调用客户端 WebSettings webSettings=webview.getSettings();...下面有两个方法名,可以随便起,但是要webview调用时一致。 这是测试版本js与android交互 方法,然后a中方法再调用script中方法--> //myfun()为方法名

    16.1K70

    Android WebView与JS交互实例

    正文 一切基于项目WebViewStudy来说明,都是最小单元案例,可作为参考研究,本文从几个方面来讲解: 1、Java调用WebView里的js代码(传递参数) 2、WebView里的js代码调用Java...本地方法(传递参数) 3、外部注入js代码 4、WebView长按事件 相关JS代码: js调用android原生代码 js代码调用Java本地方法(传递参数) 这里有一个js点击方法: 点击调用java代码...Log.e("startFunction", "----有参" + data); } 外部注入js代码 有时候我们得到一个网页,这个网页并不是我们订制的,里面没有我们调用的js代码,这时候我们可在前端直接注入...比如 网页里面有图片,我们点击图片想要查看图片和保存图片到本地,这时候网页并没有实现这个js方法供我们调用,但是我们可以注入js代码,来实现这个需求。

    5.6K20

    webview与js的相互交互

    方案思路, 1.在点击图片的时候调用本地的java方法并给出响应的图片地址 2.本地获得图片地址后,开启一个遮罩activity进行显示和处理 第二步的实现很容易实现,关键是第一步的实现,在网页中点击图片不会调用本地的...那么我们需要给这个点击事件加上相应的js函数,让点击事件调用的js函数来调用我们提前准备好的java函数,等我们捕获到图片的url剩下的就好处理了。...关键点就是给普通的html注入我们的js函数,让图片能够响应点击并调用js函数,在通过js函数来调用我们的java函数。...imagelistner");           contentWebView.setWebViewClient(new MyWebViewClient());       }   // 注入...js函数监听 private void addImageClickListner() {   // 这段js函数的功能就是,遍历所有的img几点,并添加onclick函数,函数的功能是在图片点击的时候调用本地

    3.5K90

    让你在WebView中用JS调Native Object

    背景 之所做这个东西,源于之前项目中需要把一些页面用webView来呈现,但是web中需要调用native的方法,比如获取本地存的某些数据、调用摄像头等等,这里也就是说JS要和OC能够互通有无。...注入对象: 首先我需要向JS注入我想要注入的本地对象,像下面这样一句话搞定: [self.webView addJavascriptInterfaces:wSelf withName:@"ViewController..."]; 这句话向JS中注入了ViewController这个对象,如何实现的呢?...JS中对应的对象中就完成了注入。...调用过程: 注入相对来说比较简单,无非就是在JS中创建一个对象,然后将方法名写进去,重点是调用,比如我本地有这样的一个方法- (void)passArrayFromJS:(NSArray*)arr,在JS

    3.6K30

    js依赖注入初探

    当时对依赖注入这一概念还不是很理解,只是根据题目的要求初步认识了依赖注入。...,题目挑战的方法是在inject函数中编写代码,实现依赖注入。...依赖注入是什么? 在解决上面是上的问题后,回过头来想:依赖注入是啥?其实通过题目的描述以及测试代码容易理解到,依赖注入可以动态地为函数添加依赖。...在js中依赖注入的概念不像java中被经常提到,主要原因是在js中很容易就实现了这种动态依赖。最简单的例子:bind函数。...js可以通过bind,apply,call等函数可以很方便地控制函数的参数和this变量,所以简单地依赖注入在很多情况下已经被不知不觉地使用。在AMD的模块定义中,其方式也是一种依赖注入。

    3.1K20

    js依赖注入初探

    当时对依赖注入这一概念还不是很理解,只是根据题目的要求初步认识了依赖注入。...,题目挑战的方法是在inject函数中编写代码,实现依赖注入。...依赖注入是什么? 在解决上面是上的问题后,回过头来想:依赖注入是啥?其实通过题目的描述以及测试代码容易理解到,依赖注入可以动态地为函数添加依赖。...在js中依赖注入的概念不像java中被经常提到,主要原因是在js中很容易就实现了这种动态依赖。最简单的例子:bind函数。...js可以通过bind,apply,call等函数可以很方便地控制函数的参数和this变量,所以简单地依赖注入在很多情况下已经被不知不觉地使用。在AMD的模块定义中,其方式也是一种依赖注入。

    3.7K90

    关于webview调用js出现has no method toString

    在android4.2以前,注入步骤如下: webview.getSetting().setJavaScriptEnable(true);   class JsObject {   public String...");   Android4.2及以后,注入步骤如下: webview.getSetting().setJavaScriptEnable(true);   class JsObject {   @JavascriptInterface...4.2之前向webview注入的对象所暴露的接口toString没有注释语句@JavascriptInterface,而4.2及以后的则多了注释语句@JavascriptInterface 经过查官方文档所知...,因为这个接口允许JavaScript 控制宿主应用程序,这是个很强大的特性,但同时,在4.2的版本前存在重大安全隐患,因为JavaScript 可以使用反射访问注入webview的java对象的public...fields,在一个包含不信任内容的WebView中使用这个方法,会允许攻击者去篡改宿主应用程序,使用宿主应用程序的权限执行java代码。

    2.6K80

    .NET混合开发解决方案10 WebView2控件调用网页JS方法

    控件的导航事件   客户端程序(WinForm、WPF、Win32、WinUI)集成WebView控件加载Web完成后,还有两种常见的需求 C#调用JS方法 执行通用方法,设置网页特效。...调用网页中定义的JS方法,执行计算等。 JS调用C#方法 本文讲解第一种需求的实现方式。...(@"C:\XXXX\script.js"); 3、使用以下方法 ExecuteScriptAsync传递文本变量: await webView.CoreWebView2.ExecuteScriptAsync...(text); ExecuteScriptAsync() 执行目标网页中的JS方法 1、新建一个WebFom项目 调整页面逻辑 运行程序并测试 WebView2调用JS方法的逻辑 AddScriptToExecuteOnDocumentCreatedAsync...() 设置网页特效 WebView2控件加载网页后,如果将一个文件(如:script.js、script.txt等)拖拽到WebView2控件上,将自动执行文件,效果如下 可以通过webView.CoreWebView2

    4.4K20

    WebView代理方案:拦截请求、注入资源与离线包架构

    ✅ 第2篇:WebView白屏检测与解决方案:从原因分析到工程化监控 ⏳ 第3篇:WebView代理方案实现:拦截请求、注入资源与离线包架构 ⏳ 第4篇:WebView与原生JS交互:JSBridge...否则中间人改你的 manifest,注入恶意 JS,你的 WebView 就成了攻击面。我推荐 RSA-2048 + SHA-256 双重签名:包内带签名,下载后先校验整包,再校验单文件 hash。...• Header 注入。统一注入 trace_id、device_id、token,对全链路日志和监控非常有用。这是中台型 App 做 H5 容器的核心价值之一。前端不用每个项目都写一遍鉴权头。...下一篇我会接着讲 WebView 与原生的 JS 交互,重点聊 JSBridge 的设计模式与安全实践——「能调」很容易,「调得安全」才是真挑战。...✅ 第2篇:WebView白屏检测与解决方案:从原因分析到工程化监控 ✅ 第3篇:WebView代理方案实现:拦截请求、注入资源与离线包架构 ⏳ 第4篇:WebView与原生JS交互:JSBridge

    40310
    领券