Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >webview调用android代码

webview调用android代码

作者头像
coderZhen
发布于 2018-06-28 09:04:00
发布于 2018-06-28 09:04:00
82300
代码可运行
举报
文章被收录于专栏:Android开发经验Android开发经验
运行总次数:0
代码可运行

在开发的时候经常会用到webview,必然会涉及到webview与客户端的交互,比如在网页上进行某个操作后,需要在app上显示一个提示,提示内容由网页提供,这时候就需要js来调用客户端的java代码了。

webview提供了一个方法addJavascriptInterface()来满足这种需求。

具体步骤:

  1. 客户端定义一个类,并定义需要的方法,例如: public class WebAppInterface { Context mContext; /** * Instantiate the interface and set the context */ WebAppInterface(Context c) { mContext = c; } /** * Show a toast from the web page */ @JavascriptInterface public void showToastContent(String content) { } } 注意,在方法定义前加上@JavascriptInterface注解。
    1. 生成第一步中定义的类的实例并添加给webview。 webView.addJavascriptInterface(new WebAppInterface(getActivity()), "TestObject");

    这里的"TestObject"是随便起的名字,你可以改成其他的。这个名字主要是让webview的js调用的。

  2. 在js中通过"TestObject"对象调用客户端方法 TestObject.showToastContent("haha")

备上一段官网关于这个内容的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class JsObject {
    @JavascriptInterface
    public String toString() { return "injectedObject"; }
 }
 webView.addJavascriptInterface(new JsObject(), "injectedObject");
 webView.loadData("", "text/html", null);
 webView.loadUrl("javascript:alert(injectedObject.toString())");
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.05.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android WebView 与Js交互,混合开发基础
WebChromeClient:当影响【浏览器】的事件到来时,就会通过WebChromeClient中的方法回调通知用法。
对话、
2022/02/22
3.3K0
Android WebView 与Js交互,混合开发基础
webview和js交互
今天主要总结两点:一是使用Js去调用客户端公有方法,二是从客户端调用Js中的方法 一、JS调用客户端公有方法 上例子:(PS:不会写JS,就网上找了一段js代码) 新建项目,在项目的assets文件夹下创建一个test.html: <body> <a>Web与Js交互:点击我,来调用客户端的show方法吧</a> <script> function funFromjs(){ document.getElementById("helloweb").innerHTML="我是JS里
xiangzhihong
2018/01/30
4.4K0
webview和js交互
前端工程师所需要了解的WebView
| 导语 现如今,在做移动端 H5 开发时,少不了与 Native 之间进行交互。而在Native中,H5的承载容器为 WebView,其核心是使用 WebView 控件实现加载 url。
秋风的笔记
2021/03/29
2.3K0
前端工程师所需要了解的WebView
android调用服务端的js
最近在做一个项目过程中,发现了一个很严重的安全漏洞,这个漏洞是乌云平台(http://www.wooyun.org)报告出来的。 1,使用场景 我们很多时候要使用WebView来展示一个网页,现在很多应用为了做到服务端可控,很多结果页都是网页的,而不是本地实现,这样做有很多好处,比如界面的改变不需要重新发布新版本,直接在Server端修改就行了。用网页来展示界面,通常情况下都或多或少都与Java代码有交互,比如点击网页上面的一个按钮,我们需要知道这个按钮点击事件,或者我们要调用某个方法,让页面执行某种
xiangzhihong
2018/01/29
1.9K0
Android实现WebView加载assets文件夹下的html文件,html返回webView.canGo,android嵌入h5进行交互,调试错误 net::ERR_FILE_NOT_FOUND
我的环境:win7 ,Android studio 3.0.1.   java8;
zhangjiqun
2024/12/16
1600
Android WebView与JS交互实例
好久就想写这篇文章了,一直到现在才着手,其实更好,经过之前这么长时间理解的更透彻了。
Jingbin
2019/02/25
4.2K0
利用Android Webview漏洞
https://github.com/t4kemyh4nd/vulnwebview
tea9
2023/08/24
6840
利用Android Webview漏洞
Android JS相互调用详解
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/49497227
Hankkin
2018/09/06
1.7K0
关于webview调用js出现has no method 'toString'
在android4.2以前,注入步骤如下: webview.getSetting().setJavaScriptEnable(true);   class JsObject {   public String toString() { return "injectedObject"; }    }    webView.addJavascriptInterface(new JsObject(), "injectedObject");   Android4.2及以后,注入步骤如下: webview.getS
xiangzhihong
2018/01/29
1.9K0
Android 关于WebView全方面的使用(项目应用篇)
WebView的使用已经是老生常谈了,看到很多文章说了用法,但我很少看到全的或者是项目中可以直接使用的,都是看了很多后,自己把功能都集合在一起。这里是一份比较全面的WebView项目应用篇,其中已经解决了应用时出现的很多bug,希望能对大家有帮助。
Jingbin
2018/09/10
1.5K0
WebView完全解读
WebView是一个使用WebKit引擎(4.4之后基于Chromium)的浏览器控件。因此可以将WebView当做一个完整的浏览器使用。
小小工匠
2021/08/16
3.5K0
WebView与js交互
在Project模式,main目录下,和java文件同级创建assets目录,assets目录下创建test.html,图片你随便找两张也放在asset是目录下即可。下面有两个方法名,可以随便起,但是要webview调用时一致。
cMusketeer
2018/05/05
14.2K3
WebView与js交互
WebView想说爱你不容易啊
随着app业务的不断深入发展,只靠着原生代码来堆砌功能是不现实,毕竟开发的时长会增加,而且同时需要开发iOS和Android两套,并且,如果在UI上改变了一丁点,都需要提包(虽然Android现在可以进行热更新,但是热更新不是100%能生效的,其中的原理只要了解过的人都会知道的),最终我们会选择使用原生嵌套H5的方式进行开发,这样,既可以随时更改UI,也可以无限制的进行功能扩展,然后,我们就要使用到Android的WebView了,这个让我们痛并快乐着的控件。
用户1269200
2018/08/14
7310
android--WebView使用addJavascriptInterface在sdk 17的问题
当调用WebView 的addJavascriptInterface时,使用android:targetSdkVersion="10"时是没有问题的,能够触发事件,但是毕竟使用版本时一般都使用最新的,我在开发时为了追求新,然后使用了android:targetSdkVersion="17"的属性,开始使用时并没有什么问题,大多数手机是可以使用的,比如中兴的N986,小米的MIMU4.1的系统是没有问题的,系统为2.3的几个机型也没看出问题,后来三星Note3上出问题啦,调用不了这个事件,我也纠结了半天,后来在网上查找原因,是去年android的漏洞所致,
战神伽罗
2019/07/24
9080
Android 和 Webview 如何相互 sayHello(一)
在移动时代 Web 的开发方式逐渐从 PC 适配时代转向 Hybird 的 Webview。以前,我们只需要了解一下 PC Chrome 提供的几个操作行为,比如 DOM、BOM、页面 window.location 跳转等等。你的一切行为都是直接和 浏览器打交道,只要规规矩矩的按照 W3C/MDN 上面的文档开发即可。比如,我需要你实现一个截屏的需求,后面一查文档,发现 API 不支持,没法做,直接打回~
villainhr
2018/09/30
1.9K0
Android 和 Webview 如何相互 sayHello(一)
项目需求讨论 - HyBrid 模式需求改造
好,我们现在看到了,上面的菜单我们需要的东西是左上角一个返回按钮,二个下拉框,一个横向的滚动菜单(图片里面只显示了五个,其实有9个,可以横向滚动)。
青蛙要fly
2024/02/06
1490
项目需求讨论 - HyBrid 模式需求改造
[android] WebView与Js交互
调用WebView对象的getSettings()方法,获取WebSettings对象
唯一Chat
2019/09/10
5.9K0
[android] WebView与Js交互
Android webView打开网页
这个就比较简单了,直接拖一个控件,再加载一下url,记得在AndroidManifest.xml中加一下权限
SingYi
2022/07/13
2.1K0
Android webView打开网页
C#开发移动应用系列(2.使用WebView搭建WebApp应用)
GuZhenYin
2018/01/04
2.1K0
C#开发移动应用系列(2.使用WebView搭建WebApp应用)
一文彻底搞懂安卓WebView白名单校验
近两年公司端侧发现的漏洞很大一部分都出在WebView白名单上,针对这类漏洞安全编码团队也组织过多次培训,但是这种漏洞还是屡见不鲜。下面本人就结合产品中容易出现问题的地方,用实例的方式来总结一下如何正确使用WebView白名单,给开发的兄弟们作为参考。
FB客服
2019/05/09
4.9K0
一文彻底搞懂安卓WebView白名单校验
相关推荐
Android WebView 与Js交互,混合开发基础
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验