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

Android webview注入JS代码 修改网页内容操作

今天开发的时候遇到一个需求,就是需要隐藏webview的元素,鼓捣了半天 在stack overFlow找到了解决办法 在此记录一下 final WebView webview = (WebView)findViewById...(R.id.browser); webview.getSettings().setJavaScriptEnabled(true); webview.setWebViewClient(new...第一种是在webview加载前,先讲html代码拉下来,修改后,在通过webview去加载。 第二种就是查看源代码,直接动手修改源代码,然后把源代码放在assets文件下,每次直接从本地加载。...而其他的界面都是通过js动态生成的。毫不犹豫的把源代码copy下来(注意格式,utf-8,无bom,否则中文乱码)。 就这样,第一个问题顺利解决了。...加载assets下的html代码方式为: webview.loadUrl(“file:///android_asset/test.html”); 以上这篇Android webview注入JS代码

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

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

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

    4.3K30

    WebViewjs交互

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

    14.1K70

    webviewjs交互

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

    4.2K50

    Android WebViewJS交互实例

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

    4.1K20

    WebView设置WebViewClient的方法

    WebView设置WebViewClient的方法 shouldOverrideUrlLoading: 在web页面里单击链接的时候,会自动调用android自带的浏览器来打开链接,需要通过该方法在本页面打开...(WebView,Picture) onPageStarted(WebView view,String url,Bitmap favicon) 通知应用程序已经开始进行页面加载,这个方法,在每个主框架加载一个页面或者一个内置页框都会被调用...event) 通知应用这个事件没有在WebView声明,除了系统事件,WebView总是消费普通的事件,或者设置shouldOverrideKeyEvent方法返回值为true....注意:这个方法将在非主线程调用.所以客户端在访问私有数据或者UI视图时需要谨慎行事. boolean shouldOverrideKeyEvent(WebView view ,KeyEvent event...如果方法返回true,WebView将不会处理该事件,如果返回false,那么WebView将会一直处理该事件,所以没有超级链接也能看到该事件.

    1.6K41

    让你在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

    2.4K30

    js依赖注入初探

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

    2.4K20

    js依赖注入初探

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

    3K90

    webviewjs的相互交互

    方案思路, 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函数,函数的功能是在图片点击的时候调用本地

    2.7K90

    Android用webView包装WebAPP方法

    (true); } webview = findViewById(R.id.local_webview); WebSettings settings = webview.getSettings...: 1.1 需要运行 js 的网页都需要此设置:setJavaScriptEnabled 1.2 关于setCacheMode,尽量不要设置 LOAD_CACHE_ONLY 该值,设置这个值会在 webkit...,网站title,加载进度等; js 里面使用 alert 和 confirm 需要在WebChromeClient里面进行修改,提供对话框; 2.2 关于onPageFinished: 如果你的路由里面是异步加载的...代码里显示和隐藏就行了; 最关键的html:input[type=”file”]问题,这个问题才是最大的问题,先说好 如果你的webApp不需要上传文件或者不在意Android 4.2-4.4 版本的话,可以用该方法...ImageFilePath 类文件,我将他放在 GitHub 里面了,后面我会附上链接: 至于 Android 4.2-4.4 会有问题 如果你是 native 开发者的话比较容易解决,就是在点击时直接用 js

    1.4K20
    领券