Android中的Java与JavaScript方法互调


在Android开发中常常用到WebView,就会涉及到安卓的java代码和网页中的javaScript方法的相互调用.


准备工作

  1. 最基本的要得到WebView对象

        @Bind(R.id.webview)
        WebView webview;
    
        WebView webview= (WebView) findViewById(R.id.webview);

    两种方法

    1. 使用ButterKnife插件 注解
    2. 普通findViewById
  2. 设置默认的文本编码方式为utf-8

    webview.getSettings().setDefaultTextEncodingName("utf-8");
  3. 允许执行js代码

    webview.getSettings().setJavaScriptEnabled(true);

Java代码去调用JavaScript中的方法

网页中的JavaScript代码

<script type="text/javascript">

    function changeInputValue(content){
        document.getElementById("put_id").value=content;

    }

</script>

比如我们想在java代码去调用网页中changeInputValue这个方法

webview.loadUrl("javascript:changeInputValue('我是参数')");
webView调用loadUrl方法,值是一个字符串
写法:
    javascript: + JavaScript中的方法名('参数'); 

HTML(网页)代码去调用Java中的方法

java中代码:

webview.addJavascriptInterface(new JavaScriptInterface(),"AndroidMethod");



class JavaScriptInterface{

        @JavascriptInterface
        public void showToast(String content){
            Toast.makeText(getApplicationContext(), content, Toast.LENGTH_SHORT).show();
        }
    }
使用webview调用addJavascriptInterface方法,给网页一个方法"接口"类
    两个参数
    1."接口"类 对象 直接new出来
    2. 起个名字给JavaScript调用使用

写一个方法"接口"类
在类中写方法 低版本在方法上不用写注解就可以 高版本一定要写上注解,不然无法调用

JavaScript 中代码

<script type="text/javascript">
    function showAndroidMethod(content) {
        AndroidMethod.showToast(content);
    }
</script>
在JavaScript写一个方法 方法中直接刚才在java代码中定义的名字 调用"接口"类中的方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值