IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Android利用webView调用JavaScript

阿飞博客 2015-01-24 23:40:04 累计浏览 2,843 次
本机暂存

   1、Android中利用webView调用网页上的Js代码。

   Android 中可以通过webView来实现和Js的交互,在程序中调用Js代码,只需要将webView控件的支持Js的属性设置为true,然后通过loadUrl就可以直接进行调用,如下所示:

mWebView.getSettings().setJavaScriptEnabled(true);

mWebView.loadUrl("javascript:test()");

   2、网页上调用Android中Java代码的方法

   在网页中调用Java代码,需要在webView控件中添加javascriptInterface。如下所示:

mWebView.addJavascriptInterface(new Object() {
    public void clickOnAndroid() {
        mHandler.post(new Runnable() {
            public void run() {
                Toast.makeText(Test.this, "测试调用java", Toast.LENGTH_LONG).show();

            }
        });
    }
}, "demo");

   在网页中,只需要像调用Js方法一样,进行调用就可以

<div id='b'><a onclick="window.demo.clickOnAndroid()">b.c</a></div>

   3、Java代码调用Js并传参

   首先需要带参数的Js函数,如function test(str),然后只需在调用Js时传入参数即可,如下所示:

mWebView.loadUrl("javascript:test('aa')");

   4、Js中调用Java函数并传参

   首先一样需要带参数的函数形式,但需注意此处的参数需要final类型,即得到以后不可修改,如果需要修改其中的值,可以先设置中间变量,然后进行修改。如下所示:

mWebView.addJavascriptInterface(new Object() {
    public void clickOnAndroid(final int i) {
        mHandler.post(new Runnable() {
            public void run() {
                int j = i;
                j++;
                Toast.makeText(Test.this, "测试调用java" + String.valueOf(j), Toast.LENGTH_LONG).show();
            }
        });
    }
}, "demo");

   然后在html页面中,利用如下代码:

<div id='b'><a onclick="window.demo.clickOnAndroid(2)">b.c</a></div>,

   即可实现调用

同分类推荐文章

  1. 「置顶」我做了什么 (2026-05-05 12:13:28)
  2. 万字长文推演:手机不再从 App 开始,Agent OS 如何接管任务入口 (2026-04-28 14:57:22)
  3. Android Perfetto 系列 10 - Binder 调度与锁竞争 (2025-11-16 15:33:30)

查看更多 移动开发 文章 →

建议继续学习

  1. JQuery实现Excel表格呈现 (累计阅读 48,349)
  2. 情绪版(Mood board)操作流程的新思考 (累计阅读 41,753)
  3. android 开发入门 (累计阅读 19,527)
  4. 深入理解Javascript之执行上下文(Execution Context) (累计阅读 18,404)
  5. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,933)
  6. 图片动态局部毛玻璃模糊效果的实现 (累计阅读 14,848)
  7. 天朝第二代身份证号码的验证机制 (累计阅读 14,762)
  8. HTML 5 的data-* 自定义属性 (累计阅读 14,349)
  9. 分享一个JQUERY颜色选择插件 (累计阅读 14,223)
  10. 什么是全栈工程师? (累计阅读 14,038)