webview调用android代码

在开发的时候经常会用到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")

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

class JsObject {
    @JavascriptInterface
    public String toString() { return "injectedObject"; }
 }
 webView.addJavascriptInterface(new JsObject(), "injectedObject");
 webView.loadData("", "text/html", null);
 webView.loadUrl("javascript:alert(injectedObject.toString())");

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JackieZheng

探秘Tomcat——启动篇

tomcat作为一款web服务器本身很复杂,代码量也很大,但是模块化很强,最核心的模块还是连接器Connector和容器Container。具体请看下图: ? ...

4967
来自专栏Flutter知识集

Flutter 实践 MVVM

在做Android或iOS开发时,经常会了解到MVC,MVP和MVVM。MVVM在移动端一度被非常推崇,虽然也有不少反对的声音,不过MVVM确实是不错的设计架构...

3.1K3
来自专栏QQ音乐技术团队的专栏

JsBridge实现JavaScript和Java的互相调用

前端网页JavaScript(下文简称Js)和Java互相调用在手机应用中越来越常见,JsBridge是最常用的解决方案。 1. Js调用Java,Java调用...

6639
来自专栏Golang语言社区

GoLang并发控制(下)

context的字面意思是上下文,是一个比较抽象的词,字面上理解就是上下层的传递,上会把内容传递给下,在go中程序单位一般为goroutine,这里的上下文便是...

3243
来自专栏求索之路

Android数据层架构的实现 下篇

接上篇:Android数据层架构的实现 上篇 4.外观模式实现数据处理引擎框架暴露出来的api 我们在使用各种开源框架的时候,大多数时候都不会对框架内部...

3485
来自专栏青青天空树

安卓原生与hml交互(WebView基础)

在Android4.2以上可以直接使用@JavascriptInterface注解来声明,下面是在一个本地Java方法

2603
来自专栏技术小黑屋

Android中WebView拦截替换网络请求数据

Android中处理网页时我们必然用到WebView,这里我们有这样一个需求,我们想让WebView在处理网络请求的时候将某些请求拦截替换成某些特殊的资源。具体...

2172
来自专栏Android知识点总结

1-AIV--使用ContentProvider获取短信

1462
来自专栏Android开发指南

Android优化指南

5187
来自专栏刘望舒

APK是如何被解析的?

在本系列的前面文章中,我介绍了PackageInstaller的初始化和安装APK过程、PMS处理APK的安装和PMS的创建过程,这些文章中经常会涉及到一个类,...

2863

扫码关注云+社区

领取腾讯云代金券