在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代码中定义的名字 调用"接口"类中的方法

更多相关文章

  1. Android(安卓)ViewPager 的使用
  2. Android(安卓)Activity之间跳转总结
  3. android baseadapter的getview调用两次
  4. ArcGIS for Android示例解析之GP服务调用-----ViewShed
  5. Android(安卓)Studio 添加已有工程方法
  6. Android(安卓)NestedScrolling机制
  7. Android音频系统之AudioFlinger(二)
  8. Android仿淘宝列表和网格布局切换
  9. Android-代替GLSurfaceView的GLTextureView

随机推荐

  1. android使用adb命令安装软件
  2. Android控件基本属性介绍
  3. android 一些数据转换方法
  4. Android编译过程详解(三)
  5. android 获取设备型号
  6. android文件读取
  7. Android(安卓)EditText保留小数点后两位
  8. Android(安卓)API 指南
  9. Android(安卓)图片倒影和setXfermode
  10. Android(安卓)Q 下拉状态栏快捷开关解析